Coverage Report

Created: 2025-06-23 01:55

/src/scnlib/include/scn/scan.h
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2017 Elias Kosunen
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
//
15
// This file is a part of scnlib:
16
//     https://github.com/eliaskosunen/scnlib
17
18
#pragma once
19
20
// Includes <cassert>, <cstddef>, <cstdint>, and <type_traits>
21
#include <scn/fwd.h>
22
23
#if defined(SCN_MODULE) && defined(SCN_IMPORT_STD)
24
import std;
25
#else
26
#include <array>
27
#include <cstdio>
28
#include <cstring>
29
#include <iterator>
30
#include <limits>
31
#include <new>
32
#include <optional>
33
#include <string>
34
#include <string_view>
35
#include <system_error>
36
#include <tuple>
37
38
#if SCN_HAS_STD_F16 || SCN_HAS_STD_F32 || SCN_HAS_STD_F64 || \
39
    SCN_HAS_STD_F128 || SCN_HAS_STD_BF16
40
#include <stdfloat>
41
#endif
42
#endif
43
44
namespace scn {
45
SCN_BEGIN_NAMESPACE
46
47
/////////////////////////////////////////////////////////////////
48
// Metaprogramming facilities
49
/////////////////////////////////////////////////////////////////
50
51
namespace detail {
52
53
template <typename T>
54
using integer_type_for_char =
55
    std::conditional_t<std::is_signed_v<T>, int, unsigned>;
56
57
template <typename T, template <typename...> class Templ>
58
struct is_specialization_of_impl : std::false_type {};
59
template <typename... T, template <typename...> class Templ>
60
struct is_specialization_of_impl<Templ<T...>, Templ> : std::true_type {};
61
62
template <typename T, template <typename...> class Templ>
63
using is_specialization_of =
64
    is_specialization_of_impl<remove_cvref_t<T>, Templ>;
65
template <typename T, template <typename...> class Templ>
66
inline constexpr bool is_specialization_of_v =
67
    is_specialization_of<T, Templ>::value;
68
69
// from mp11:
70
71
template <typename T>
72
struct mp_identity {
73
    using type = T;
74
};
75
template <typename T>
76
using mp_identity_t = typename mp_identity<T>::type;
77
78
template <bool B>
79
using mp_bool = std::integral_constant<bool, B>;
80
template <typename T>
81
using mp_to_bool = mp_bool<static_cast<bool>(T::value)>;
82
template <typename T>
83
using mp_not = mp_bool<!T::value>;
84
template <auto A>
85
using mp_value = std::integral_constant<decltype(A), A>;
86
87
template <bool C, typename T, typename... E>
88
struct mp_if_c_impl;
89
template <typename T, typename... E>
90
struct mp_if_c_impl<true, T, E...> {
91
    using type = T;
92
};
93
template <typename T, typename E>
94
struct mp_if_c_impl<false, T, E> {
95
    using type = E;
96
};
97
98
template <bool C, typename T, typename... E>
99
using mp_if_c = typename mp_if_c_impl<C, T, E...>::type;
100
template <typename C, typename T, typename... E>
101
using mp_if = typename mp_if_c_impl<static_cast<bool>(C::value), T, E...>::type;
102
103
template <template <typename...> class F, typename... T>
104
struct mp_valid_impl {
105
    template <template <typename...> class G, typename = G<T...>>
106
    static std::true_type check(int);
107
    template <template <typename...> class>
108
    static std::false_type check(...);
109
110
    using type = decltype(check<F>(0));
111
};
112
113
template <template <typename...> class F, typename... T>
114
using mp_valid = typename mp_valid_impl<F, T...>::type;
115
template <template <typename...> class F, typename... T>
116
inline constexpr bool mp_valid_v = mp_valid<F, T...>::value;
117
118
struct mp_nonesuch {};
119
template <template <typename...> class F, typename... T>
120
struct mp_defer_impl {
121
    using type = F<T...>;
122
};
123
124
template <template <typename...> class F, typename... T>
125
using mp_defer = mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_nonesuch>;
126
127
template <bool C, class T, template <class...> class F, class... U>
128
struct mp_eval_if_c_impl;
129
130
template <class T, template <class...> class F, class... U>
131
struct mp_eval_if_c_impl<true, T, F, U...> {
132
    using type = T;
133
};
134
135
template <class T, template <class...> class F, class... U>
136
struct mp_eval_if_c_impl<false, T, F, U...> : mp_defer<F, U...> {};
137
138
template <bool C, class T, template <class...> class F, class... U>
139
using mp_eval_if_c = typename mp_eval_if_c_impl<C, T, F, U...>::type;
140
template <class C, class T, template <class...> class F, class... U>
141
using mp_eval_if =
142
    typename mp_eval_if_c_impl<static_cast<bool>(C::value), T, F, U...>::type;
143
template <class C, class T, class Q, class... U>
144
using mp_eval_if_q = typename mp_eval_if_c_impl<static_cast<bool>(C::value),
145
                                                T,
146
                                                Q::template fn,
147
                                                U...>::type;
148
149
// mp_eval_if_not
150
template <class C, class T, template <class...> class F, class... U>
151
using mp_eval_if_not = mp_eval_if<mp_not<C>, T, F, U...>;
152
template <class C, class T, class Q, class... U>
153
using mp_eval_if_not_q = mp_eval_if<mp_not<C>, T, Q::template fn, U...>;
154
155
// mp_eval_or
156
template <class T, template <class...> class F, class... U>
157
using mp_eval_or = mp_eval_if_not<mp_valid<F, U...>, T, F, U...>;
158
template <class T, class Q, class... U>
159
using mp_eval_or_q = mp_eval_or<T, Q::template fn, U...>;
160
161
// mp_valid_and_true
162
template <template <class...> class F, class... T>
163
using mp_valid_and_true = mp_eval_or<std::false_type, F, T...>;
164
template <class Q, class... T>
165
using mp_valid_and_true_q = mp_valid_and_true<Q::template fn, T...>;
166
167
// extension
168
template <template <typename...> class F, typename... T>
169
using mp_valid_result =
170
    mp_if<mp_valid<F, T...>, mp_defer_impl<F, T...>, mp_identity<void>>;
171
template <template <typename...> class F, typename... T>
172
using mp_valid_result_t = typename mp_valid_result<F, T...>::type;
173
174
// mp_cond
175
template <class C, class T, class... E>
176
struct mp_cond_impl;
177
178
template <class C, class T, class... E>
179
using mp_cond = typename mp_cond_impl<C, T, E...>::type;
180
181
template <class C, class T, class... E>
182
using mp_cond_ = mp_eval_if<C, T, mp_cond, E...>;
183
184
template <class C, class T, class... E>
185
struct mp_cond_impl : mp_defer<mp_cond_, C, T, E...> {};
186
187
/////////////////////////////////////////////////////////////////
188
// pointer_traits and to_address
189
/////////////////////////////////////////////////////////////////
190
191
template <typename Ptr, typename>
192
struct pointer_traits {};
193
194
template <typename T>
195
struct pointer_traits<T*, void> {
196
    using pointer = T*;
197
    using element_type = T;
198
    using difference_type = std::ptrdiff_t;
199
200
    template <typename U>
201
    using rebind = U*;
202
203
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
204
    static constexpr pointer pointer_to(U& r) noexcept
205
    {
206
        return &r;
207
    }
208
209
    SCN_FORCE_INLINE static constexpr pointer to_address(pointer p) noexcept
210
    {
211
        return p;
212
    }
213
};
214
215
template <typename Ptr>
216
using apply_member_difference_type = typename Ptr::difference_type;
217
template <typename Ptr>
218
using get_member_difference_type =
219
    mp_eval_or<std::ptrdiff_t, apply_member_difference_type, Ptr>;
220
221
template <typename Ptr, typename ElementType>
222
struct pointer_traits_generic_base {
223
    using pointer = Ptr;
224
    using element_type = ElementType;
225
226
    using difference_type = get_member_difference_type<Ptr>;
227
    static_assert(std::is_integral_v<difference_type>);
228
229
    // no rebind (TODO?)
230
231
    template <typename P = Ptr>
232
    static auto pointer_to(ElementType& r) -> decltype(P::pointer_to(r))
233
    {
234
        return Ptr::pointer_to(r);
235
    }
236
};
237
238
template <typename It, typename = void>
239
struct wrapped_pointer_iterator;
240
241
#ifdef _GLIBCXX_DEBUG
242
template <typename Elem, typename Container>
243
struct wrapped_pointer_iterator<__gnu_debug::_Safe_iterator<Elem*, Container>> {
244
    SCN_FORCE_INLINE static constexpr auto to_address(
245
        const __gnu_debug::_Safe_iterator<Elem*, Container>& it) noexcept
246
    {
247
        return it.base();
248
    }
249
};
250
#endif
251
#if SCN_STDLIB_GLIBCXX
252
template <typename Elem, typename Container>
253
struct wrapped_pointer_iterator<
254
    __gnu_cxx::__normal_iterator<Elem*, Container>> {
255
    SCN_FORCE_INLINE static constexpr auto to_address(
256
        const __gnu_cxx::__normal_iterator<Elem*, Container>& it) noexcept
257
    {
258
        return it.base();
259
    }
260
};
261
#endif
262
#if SCN_STDLIB_LIBCPP
263
template <typename Elem>
264
struct wrapped_pointer_iterator<std::__wrap_iter<Elem*>> {
265
    SCN_FORCE_INLINE static constexpr auto to_address(
266
        const std::__wrap_iter<Elem*>& it) noexcept
267
0
    {
268
0
        return it.base();
269
0
    }
270
};
271
#endif
272
273
template <typename I>
274
using apply_deref = decltype(*SCN_DECLVAL(I&));
275
template <typename I>
276
using apply_incr = decltype(++SCN_DECLVAL(I&));
277
template <typename I>
278
using apply_member_unwrapped = decltype(SCN_DECLVAL(I&)._Unwrapped());
279
template <typename It>
280
struct wrapped_pointer_iterator<
281
    It,
282
    std::enable_if_t<mp_valid_v<apply_deref, It> &&
283
                     mp_valid_v<apply_incr, It> &&
284
                     mp_valid_v<apply_member_unwrapped, It>>> {
285
    SCN_FORCE_INLINE static constexpr auto to_address(const It& it) noexcept
286
    {
287
        return it._Unwrapped();
288
    }
289
};
290
291
template <typename I>
292
using apply_member_to_address =
293
    decltype(wrapped_pointer_iterator<I>::to_address(SCN_DECLVAL(const I&)));
294
295
template <typename Iterator>
296
struct pointer_traits<
297
    Iterator,
298
    std::enable_if_t<mp_valid_v<apply_member_to_address, Iterator>>>
299
    : pointer_traits_generic_base<
300
          Iterator,
301
          std::remove_reference_t<decltype(*SCN_DECLVAL(Iterator&))>> {
302
    SCN_FORCE_INLINE static constexpr auto to_address(
303
        const Iterator& it) noexcept
304
0
    {
305
0
        return wrapped_pointer_iterator<Iterator>::to_address(it);
306
0
    }
307
};
308
309
template <typename It>
310
using apply_ptr_traits_to_address =
311
    decltype(pointer_traits<It>::to_address(SCN_DECLVAL(const It&)));
312
template <typename It>
313
inline constexpr bool can_make_address_from_iterator =
314
    std::is_pointer_v<mp_valid_result_t<apply_ptr_traits_to_address, It>>;
315
316
template <typename T>
317
SCN_FORCE_INLINE constexpr T* to_address_impl(T* p, priority_tag<2>) noexcept
318
3.46M
{
319
3.46M
    return p;
320
3.46M
}
char const* scn::v4::detail::to_address_impl<char const>(char const*, scn::v4::detail::priority_tag<2ul>)
Line
Count
Source
318
2.68M
{
319
2.68M
    return p;
320
2.68M
}
wchar_t const* scn::v4::detail::to_address_impl<wchar_t const>(wchar_t const*, scn::v4::detail::priority_tag<2ul>)
Line
Count
Source
318
782k
{
319
782k
    return p;
320
782k
}
321
template <typename Ptr>
322
SCN_FORCE_INLINE constexpr auto to_address_impl(const Ptr& p,
323
                                                priority_tag<1>) noexcept
324
    -> decltype(::scn::detail::pointer_traits<Ptr>::to_address(p))
325
{
326
    return ::scn::detail::pointer_traits<Ptr>::to_address(p);
327
}
328
template <typename Ptr>
329
SCN_FORCE_INLINE constexpr auto to_address_impl(const Ptr& p,
330
                                                priority_tag<0>) noexcept
331
    -> decltype(::scn::detail::to_address_impl(p.operator->(),
332
                                               priority_tag<2>{}))
333
{
334
    return ::scn::detail::to_address_impl(p.operator->(), priority_tag<2>{});
335
}
336
337
template <typename Ptr>
338
SCN_FORCE_INLINE constexpr auto to_address(Ptr&& p) noexcept
339
    -> decltype(::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{}))
340
3.46M
{
341
3.46M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
342
3.46M
}
_ZN3scn2v46detail10to_addressIRPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
340
2.53M
{
341
2.53M
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
342
2.53M
}
_ZN3scn2v46detail10to_addressIPKcEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
340
144k
{
341
144k
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
342
144k
}
_ZN3scn2v46detail10to_addressIRPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
340
528k
{
341
528k
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
342
528k
}
_ZN3scn2v46detail10to_addressIPKwEEDTclgssr3scn6detailE15to_address_implscDtfp_Efp_tlNS1_12priority_tagILm2EEEEEEOT_
Line
Count
Source
340
254k
{
341
254k
    return ::scn::detail::to_address_impl(SCN_FWD(p), priority_tag<2>{});
342
254k
}
343
344
}  // namespace detail
345
346
/////////////////////////////////////////////////////////////////
347
// <expected> implementation
348
/////////////////////////////////////////////////////////////////
349
350
SCN_GCC_PUSH
351
SCN_GCC_IGNORE("-Wnoexcept")
352
353
// The following implementation of expected is based on TartanLlama/expected,
354
// but is heavily modified.
355
//
356
// The original source is here:
357
//     https://github.com/TartanLlama/expected
358
// which is licensed under CC0 (Public Domain).
359
360
/**
361
 * \see `std::unexpected`
362
 */
363
template <typename E>
364
class SCN_TRIVIAL_ABI unexpected {
365
    static_assert(std::is_destructible_v<E>);
366
367
public:
368
    unexpected() = delete;
369
370
    SCN_GCC_PUSH
371
    SCN_GCC_IGNORE("-Wmaybe-uninitialized")
372
373
    template <
374
        typename Err = E,
375
        typename = std::enable_if_t<!std::is_same_v<Err, unexpected> &&
376
                                    !std::is_same_v<Err, std::in_place_t> &&
377
                                    std::is_constructible_v<E, Err>>>
378
    explicit constexpr unexpected(Err&& e) noexcept(
379
        std::is_nothrow_constructible_v<E, Err>)
380
896k
        : m_unexpected(std::forward<Err>(e))
381
996k
    {
382
996k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
383
996k
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error&, void>(scn::v4::scan_error&)
Line
Count
Source
380
710k
        : m_unexpected(std::forward<Err>(e))
381
710k
    {
382
710k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
383
710k
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error, void>(scn::v4::scan_error&&)
Line
Count
Source
380
177k
        : m_unexpected(std::forward<Err>(e))
381
177k
    {
382
177k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
383
177k
    }
scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error, void>(scn::v4::impl::parse_error&&)
Line
Count
Source
380
22
        : m_unexpected(std::forward<Err>(e))
381
22
    {
382
22
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
383
22
    }
scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error&, void>(scn::v4::impl::parse_error&)
Line
Count
Source
380
9.10k
        : m_unexpected(std::forward<Err>(e))
381
9.10k
    {
382
9.10k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
383
9.10k
    }
scn::v4::unexpected<scn::v4::impl::eof_error>::unexpected<scn::v4::impl::eof_error, void>(scn::v4::impl::eof_error&&)
Line
Count
Source
380
1.74k
        : m_unexpected(std::forward<Err>(e))
381
1.74k
    {
382
1.74k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
383
1.74k
    }
scn::v4::unexpected<scn::v4::impl::eof_error>::unexpected<scn::v4::impl::eof_error&, void>(scn::v4::impl::eof_error&)
Line
Count
Source
380
368
        : m_unexpected(std::forward<Err>(e))
381
368
    {
382
368
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
383
368
    }
scn::v4::unexpected<scn::v4::impl::parse_error::code>::unexpected<scn::v4::impl::parse_error::code, void>(scn::v4::impl::parse_error::code&&)
Line
Count
Source
380
97.9k
        : m_unexpected(std::forward<Err>(e))
381
97.9k
    {
382
97.9k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
383
97.9k
    }
384
385
    SCN_GCC_POP
386
387
    template <typename... Args,
388
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
389
    explicit constexpr unexpected(std::in_place_t, Args&&... args) noexcept(
390
        std::is_nothrow_constructible_v<E, Args...>)
391
1.00M
        : m_unexpected(std::forward<Args>(args)...)
392
1.00M
    {
393
1.00M
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
394
1.00M
    }
scn::v4::unexpected<scn::v4::scan_error>::unexpected<scn::v4::scan_error, void>(std::__1::in_place_t, scn::v4::scan_error&&)
Line
Count
Source
391
897k
        : m_unexpected(std::forward<Args>(args)...)
392
897k
    {
393
897k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
394
897k
    }
scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error, void>(std::__1::in_place_t, scn::v4::impl::parse_error&&)
Line
Count
Source
391
10.2k
        : m_unexpected(std::forward<Args>(args)...)
392
10.2k
    {
393
10.2k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
394
10.2k
    }
scn::v4::unexpected<scn::v4::impl::parse_error>::unexpected<scn::v4::impl::parse_error::code, void>(std::__1::in_place_t, scn::v4::impl::parse_error::code&&)
Line
Count
Source
391
97.9k
        : m_unexpected(std::forward<Args>(args)...)
392
97.9k
    {
393
97.9k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_unexpected);
394
97.9k
    }
395
396
    SCN_NODISCARD constexpr E& error() & noexcept
397
1.66M
    {
398
1.66M
        return m_unexpected;
399
1.66M
    }
scn::v4::unexpected<scn::v4::scan_error>::error() &
Line
Count
Source
397
1.50M
    {
398
1.50M
        return m_unexpected;
399
1.50M
    }
scn::v4::unexpected<scn::v4::impl::eof_error>::error() &
Line
Count
Source
397
3.56k
    {
398
3.56k
        return m_unexpected;
399
3.56k
    }
scn::v4::unexpected<scn::v4::impl::parse_error>::error() &
Line
Count
Source
397
60.3k
    {
398
60.3k
        return m_unexpected;
399
60.3k
    }
scn::v4::unexpected<scn::v4::impl::parse_error::code>::error() &
Line
Count
Source
397
97.9k
    {
398
97.9k
        return m_unexpected;
399
97.9k
    }
400
    SCN_NODISCARD constexpr const E& error() const& noexcept
401
0
    {
402
0
        return m_unexpected;
403
0
    }
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::unexpected<scn::v4::impl::parse_error>::error() const &
404
405
    SCN_NODISCARD constexpr E&& error() && noexcept
406
    {
407
        return std::move(m_unexpected);
408
    }
409
    SCN_NODISCARD constexpr const E&& error() const&& noexcept
410
    {
411
        return std::move(m_unexpected);
412
    }
413
414
private:
415
    E m_unexpected;
416
};
417
418
template <typename E>
419
unexpected(E) -> unexpected<E>;
420
421
struct unexpect_t {};
422
inline constexpr unexpect_t unexpect{};
423
424
namespace detail {
425
template <typename T, typename... Args>
426
T* construct_at(T* p, Args&&... args) noexcept(
427
    std::is_nothrow_constructible_v<T, Args...>)
428
212k
{
429
212k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
430
212k
        T(std::forward<Args>(args)...);
431
212k
}
scn::v4::unexpected<scn::v4::scan_error>* scn::v4::detail::construct_at<scn::v4::unexpected<scn::v4::scan_error>, scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>*, scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
428
147k
{
429
147k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
430
147k
        T(std::forward<Args>(args)...);
431
147k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
428
5.61k
{
429
5.61k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
430
5.61k
        T(std::forward<Args>(args)...);
431
5.61k
}
scn::v4::unexpected<scn::v4::scan_error>* scn::v4::detail::construct_at<scn::v4::unexpected<scn::v4::scan_error>, std::__1::in_place_t const&, scn::v4::scan_error>(scn::v4::unexpected<scn::v4::scan_error>*, std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
428
31.4k
{
429
31.4k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
430
31.4k
        T(std::forward<Args>(args)...);
431
31.4k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
428
5.61k
{
429
5.61k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
430
5.61k
        T(std::forward<Args>(args)...);
431
5.61k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
428
11.2k
{
429
11.2k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
430
11.2k
        T(std::forward<Args>(args)...);
431
11.2k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
428
11.2k
{
429
11.2k
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
430
11.2k
        T(std::forward<Args>(args)...);
431
11.2k
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
428
8
{
429
8
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
430
8
        T(std::forward<Args>(args)...);
431
8
}
std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
428
8
{
429
8
    return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
430
8
        T(std::forward<Args>(args)...);
431
8
}
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >>(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >* scn::v4::detail::construct_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*, scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
432
template <typename T>
433
void destroy_at(T* p) noexcept
434
96.5k
{
435
    if constexpr (std::is_array_v<T>) {
436
        for (auto& elem : *p) {
437
            scn::detail::destroy_at(&elem);
438
        }
439
    }
440
96.5k
    else {
441
96.5k
        p->~T();
442
96.5k
    }
443
96.5k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
434
5.61k
{
435
    if constexpr (std::is_array_v<T>) {
436
        for (auto& elem : *p) {
437
            scn::detail::destroy_at(&elem);
438
        }
439
    }
440
5.61k
    else {
441
5.61k
        p->~T();
442
5.61k
    }
443
5.61k
}
void scn::v4::detail::destroy_at<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>*)
Line
Count
Source
434
62.7k
{
435
    if constexpr (std::is_array_v<T>) {
436
        for (auto& elem : *p) {
437
            scn::detail::destroy_at(&elem);
438
        }
439
    }
440
62.7k
    else {
441
62.7k
        p->~T();
442
62.7k
    }
443
62.7k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
434
5.61k
{
435
    if constexpr (std::is_array_v<T>) {
436
        for (auto& elem : *p) {
437
            scn::detail::destroy_at(&elem);
438
        }
439
    }
440
5.61k
    else {
441
5.61k
        p->~T();
442
5.61k
    }
443
5.61k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
434
11.2k
{
435
    if constexpr (std::is_array_v<T>) {
436
        for (auto& elem : *p) {
437
            scn::detail::destroy_at(&elem);
438
        }
439
    }
440
11.2k
    else {
441
11.2k
        p->~T();
442
11.2k
    }
443
11.2k
}
void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >*)
Line
Count
Source
434
11.2k
{
435
    if constexpr (std::is_array_v<T>) {
436
        for (auto& elem : *p) {
437
            scn::detail::destroy_at(&elem);
438
        }
439
    }
440
11.2k
    else {
441
11.2k
        p->~T();
442
11.2k
    }
443
11.2k
}
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
void scn::v4::detail::destroy_at<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
434
8
{
435
    if constexpr (std::is_array_v<T>) {
436
        for (auto& elem : *p) {
437
            scn::detail::destroy_at(&elem);
438
        }
439
    }
440
8
    else {
441
8
        p->~T();
442
8
    }
443
8
}
void scn::v4::detail::destroy_at<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Line
Count
Source
434
8
{
435
    if constexpr (std::is_array_v<T>) {
436
        for (auto& elem : *p) {
437
            scn::detail::destroy_at(&elem);
438
        }
439
    }
440
8
    else {
441
8
        p->~T();
442
8
    }
443
8
}
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
Unexecuted instantiation: void scn::v4::detail::destroy_at<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >*)
444
445
struct deferred_init_tag_t {};
446
inline constexpr deferred_init_tag_t deferred_init_tag{};
447
448
template <typename T,
449
          typename E,
450
          bool IsTriviallyDestructible =
451
              (std::is_void_v<T> || std::is_trivially_destructible_v<T>) &&
452
              std::is_trivially_destructible_v<E>>
453
struct expected_storage_base;
454
455
template <typename T, typename E>
456
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, true> {
457
    constexpr expected_storage_base() noexcept(
458
        std::is_nothrow_default_constructible_v<T>)
459
117k
        : m_value(T{}), m_has_value(true)
460
117k
    {
461
117k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
5.61k
        : m_value(T{}), m_has_value(true)
460
5.61k
    {
461
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
5.61k
        : m_value(T{}), m_has_value(true)
460
5.61k
    {
461
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
5.61k
        : m_value(T{}), m_has_value(true)
460
5.61k
    {
461
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
5.61k
        : m_value(T{}), m_has_value(true)
460
5.61k
    {
461
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
5.61k
        : m_value(T{}), m_has_value(true)
460
5.61k
    {
461
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
5.61k
        : m_value(T{}), m_has_value(true)
460
5.61k
    {
461
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
5.61k
        : m_value(T{}), m_has_value(true)
460
5.61k
    {
461
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
11.2k
        : m_value(T{}), m_has_value(true)
460
11.2k
    {
461
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
11.2k
        : m_value(T{}), m_has_value(true)
460
11.2k
    {
461
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
11.2k
        : m_value(T{}), m_has_value(true)
460
11.2k
    {
461
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
11.2k
        : m_value(T{}), m_has_value(true)
460
11.2k
    {
461
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
11.2k
        : m_value(T{}), m_has_value(true)
460
11.2k
    {
461
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
11.2k
        : m_value(T{}), m_has_value(true)
460
11.2k
    {
461
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_storage_base()
Line
Count
Source
459
11.2k
        : m_value(T{}), m_has_value(true)
460
11.2k
    {
461
11.2k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_storage_base()
462
463
    constexpr explicit expected_storage_base(deferred_init_tag_t) noexcept
464
        : m_deferred_init(), m_has_value(false)
465
    {
466
    }
467
468
    template <typename... Args,
469
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
470
    constexpr explicit expected_storage_base(
471
        std::in_place_t,
472
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
473
533k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
533k
    {
475
533k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
473
2.23k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
2.23k
    {
475
2.23k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
473
2.07k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
2.07k
    {
475
2.07k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
473
10.4k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
10.4k
    {
475
10.4k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>&&)
Line
Count
Source
473
4.86k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
4.86k
    {
475
4.86k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
473
2.67k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
2.67k
    {
475
2.67k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<char const*, long>, void>(std::__1::in_place_t, std::__1::pair<char const*, long>&&)
Line
Count
Source
473
9.25k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
9.25k
    {
475
9.25k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Line
Count
Source
473
1.39k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.39k
    {
475
1.39k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
473
1.88k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.88k
    {
475
1.88k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
473
1.03k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.03k
    {
475
1.03k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
473
1.03k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.03k
    {
475
1.03k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Line
Count
Source
473
3.70k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
3.70k
    {
475
3.70k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
473
2.77k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
2.77k
    {
475
2.77k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
473
2.77k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
2.77k
    {
475
2.77k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Line
Count
Source
473
358
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
358
    {
475
358
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Line
Count
Source
473
928
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
928
    {
475
928
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
Line
Count
Source
473
816
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
816
    {
475
816
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
473
2.75k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
2.75k
    {
475
2.75k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>&&)
Line
Count
Source
473
2.36k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
2.36k
    {
475
2.36k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
473
1.74k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.74k
    {
475
1.74k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, long>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
473
6.72k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
6.72k
    {
475
6.72k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Line
Count
Source
473
58
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
58
    {
475
58
    }
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Line
Count
Source
473
786
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
786
    {
475
786
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
473
982
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
982
    {
475
982
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Line
Count
Source
473
596
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
596
    {
475
596
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Line
Count
Source
473
596
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
596
    {
475
596
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Line
Count
Source
473
26.1k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
26.1k
    {
475
26.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
473
19.5k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
19.5k
    {
475
19.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(std::__1::in_place_t, scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
473
19.5k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
19.5k
    {
475
19.5k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Line
Count
Source
473
190
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
190
    {
475
190
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Line
Count
Source
473
44
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
44
    {
475
44
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::in_place_t, std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Line
Count
Source
473
6.54k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
6.54k
    {
475
6.54k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(std::__1::in_place_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
Line
Count
Source
473
486
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
486
    {
475
486
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Line
Count
Source
473
3.11k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
3.11k
    {
475
3.11k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Line
Count
Source
473
1.95k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.95k
    {
475
1.95k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Line
Count
Source
473
1.10k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.10k
    {
475
1.10k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(std::__1::in_place_t, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Line
Count
Source
473
1.10k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.10k
    {
475
1.10k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(std::__1::in_place_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
473
21.5k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
21.5k
    {
475
21.5k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
473
125k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
125k
    {
475
125k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
473
50.7k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
50.7k
    {
475
50.7k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<char const*, void>(std::__1::in_place_t, char const*&&)
Line
Count
Source
473
1.96k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.96k
    {
475
1.96k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<long, void>(std::__1::in_place_t, long&&)
Line
Count
Source
473
4.48k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
4.48k
    {
475
4.48k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const*&, void>(std::__1::in_place_t, char const*&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<char const* const&, void>(std::__1::in_place_t, char const* const&)
Line
Count
Source
473
1.44k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
1.44k
    {
475
1.44k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
473
142k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
142k
    {
475
142k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Line
Count
Source
473
82
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
82
    {
475
82
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<wchar_t const*, void>(std::__1::in_place_t, wchar_t const*&&)
Line
Count
Source
473
39.0k
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
39.0k
    {
475
39.0k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const*&, void>(std::__1::in_place_t, wchar_t const*&)
Line
Count
Source
473
100
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
100
    {
475
100
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<wchar_t const* const&, void>(std::__1::in_place_t, wchar_t const* const&)
Line
Count
Source
473
522
        : m_value(std::forward<Args>(args)...), m_has_value(true)
474
522
    {
475
522
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::expected_storage_base<wchar_t, void>(std::__1::in_place_t, wchar_t&&)
476
477
    template <typename... Args,
478
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
479
    constexpr explicit expected_storage_base(
480
        unexpect_t,
481
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
482
666k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
666k
          m_has_value(false)
484
666k
    {
485
666k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
5.34k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
5.34k
          m_has_value(false)
484
5.34k
    {
485
5.34k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
48.3k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
48.3k
          m_has_value(false)
484
48.3k
    {
485
48.3k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
5.61k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
5.61k
          m_has_value(false)
484
5.61k
    {
485
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
5.61k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
5.61k
          m_has_value(false)
484
5.61k
    {
485
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
5.61k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
5.61k
          m_has_value(false)
484
5.61k
    {
485
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
5.61k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
5.61k
          m_has_value(false)
484
5.61k
    {
485
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
5.61k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
5.61k
          m_has_value(false)
484
5.61k
    {
485
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
4.96k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
4.96k
          m_has_value(false)
484
4.96k
    {
485
4.96k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
10.9k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
10.9k
          m_has_value(false)
484
10.9k
    {
485
10.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
99.0k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
99.0k
          m_has_value(false)
484
99.0k
    {
485
99.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
11.1k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
11.1k
          m_has_value(false)
484
11.1k
    {
485
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
11.1k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
11.1k
          m_has_value(false)
484
11.1k
    {
485
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
11.1k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
11.1k
          m_has_value(false)
484
11.1k
    {
485
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
11.1k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
11.1k
          m_has_value(false)
484
11.1k
    {
485
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
11.2k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
11.2k
          m_has_value(false)
484
11.2k
    {
485
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
10.6k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
10.6k
          m_has_value(false)
484
10.6k
    {
485
10.6k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
162k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
162k
          m_has_value(false)
484
162k
    {
485
162k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
33.2k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
33.2k
          m_has_value(false)
484
33.2k
    {
485
33.2k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
86.9k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
86.9k
          m_has_value(false)
484
86.9k
    {
485
86.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
482
552
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
552
          m_has_value(false)
484
552
    {
485
552
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
482
516
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
516
          m_has_value(false)
484
516
    {
485
516
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
238
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
238
          m_has_value(false)
484
238
    {
485
238
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
6.57k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
6.57k
          m_has_value(false)
484
6.57k
    {
485
6.57k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Line
Count
Source
482
1.25k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
1.25k
          m_has_value(false)
484
1.25k
    {
485
1.25k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Line
Count
Source
482
5.43k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
5.43k
          m_has_value(false)
484
5.43k
    {
485
5.43k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Line
Count
Source
482
1.14k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
1.14k
          m_has_value(false)
484
1.14k
    {
485
1.14k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Line
Count
Source
482
11.3k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
11.3k
          m_has_value(false)
484
11.3k
    {
485
11.3k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
482
196
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
196
          m_has_value(false)
484
196
    {
485
196
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
482
352
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
352
          m_has_value(false)
484
352
    {
485
352
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
116
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
116
          m_has_value(false)
484
116
    {
485
116
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
2.77k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
2.77k
          m_has_value(false)
484
2.77k
    {
485
2.77k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Line
Count
Source
482
880
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
880
          m_has_value(false)
484
880
    {
485
880
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Line
Count
Source
482
2.87k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
2.87k
          m_has_value(false)
484
2.87k
    {
485
2.87k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Line
Count
Source
482
6.93k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
6.93k
          m_has_value(false)
484
6.93k
    {
485
6.93k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_storage_base<scn::v4::impl::parse_error::code, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error::code&&)
Line
Count
Source
482
78.2k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
78.2k
          m_has_value(false)
484
78.2k
    {
485
78.2k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
482
382
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
382
          m_has_value(false)
484
382
    {
485
382
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
238
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
238
          m_has_value(false)
484
238
    {
485
238
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_storage_base<scn::v4::impl::eof_error, void>(scn::v4::unexpect_t, scn::v4::impl::eof_error&&)
Line
Count
Source
482
116
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
116
          m_has_value(false)
484
116
    {
485
116
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
482
116
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
483
116
          m_has_value(false)
484
116
    {
485
116
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
486
487
    constexpr T& get_value() & noexcept
488
598k
    {
489
598k
        return m_value;
490
598k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
5.89k
    {
489
5.89k
        return m_value;
490
5.89k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
2.23k
    {
489
2.23k
        return m_value;
490
2.23k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
4.48k
    {
489
4.48k
        return m_value;
490
4.48k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
5.61k
    {
489
5.61k
        return m_value;
490
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
5.61k
    {
489
5.61k
        return m_value;
490
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
5.61k
    {
489
5.61k
        return m_value;
490
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
5.61k
    {
489
5.61k
        return m_value;
490
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
5.61k
    {
489
5.61k
        return m_value;
490
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
6.27k
    {
489
6.27k
        return m_value;
490
6.27k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
11.4k
    {
489
11.4k
        return m_value;
490
11.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
2.07k
    {
489
2.07k
        return m_value;
490
2.07k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
11.2k
    {
489
11.2k
        return m_value;
490
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
11.2k
    {
489
11.2k
        return m_value;
490
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
11.2k
    {
489
11.2k
        return m_value;
490
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
11.2k
    {
489
11.2k
        return m_value;
490
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
11.2k
    {
489
11.2k
        return m_value;
490
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
11.7k
    {
489
11.7k
        return m_value;
490
11.7k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() &
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
22.0k
    {
489
22.0k
        return m_value;
490
22.0k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
120k
    {
489
120k
        return m_value;
490
120k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
45.4k
    {
489
45.4k
        return m_value;
490
45.4k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
8.69k
    {
489
8.69k
        return m_value;
490
8.69k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
4.86k
    {
489
4.86k
        return m_value;
490
4.86k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
9.25k
    {
489
9.25k
        return m_value;
490
9.25k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_value() &
Line
Count
Source
488
1.88k
    {
489
1.88k
        return m_value;
490
1.88k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
1.39k
    {
489
1.39k
        return m_value;
490
1.39k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
1.03k
    {
489
1.03k
        return m_value;
490
1.03k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
1.03k
    {
489
1.03k
        return m_value;
490
1.03k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
3.48k
    {
489
3.48k
        return m_value;
490
3.48k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_value() &
Line
Count
Source
488
1.96k
    {
489
1.96k
        return m_value;
490
1.96k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
3.70k
    {
489
3.70k
        return m_value;
490
3.70k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
2.77k
    {
489
2.77k
        return m_value;
490
2.77k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
2.77k
    {
489
2.77k
        return m_value;
490
2.77k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
358
    {
489
358
        return m_value;
490
358
    }
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
928
    {
489
928
        return m_value;
490
928
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
103k
    {
489
103k
        return m_value;
490
103k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
1.52k
    {
489
1.52k
        return m_value;
490
1.52k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
2.36k
    {
489
2.36k
        return m_value;
490
2.36k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
6.72k
    {
489
6.72k
        return m_value;
490
6.72k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_value() &
Line
Count
Source
488
1.06k
    {
489
1.06k
        return m_value;
490
1.06k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
786
    {
489
786
        return m_value;
490
786
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
596
    {
489
596
        return m_value;
490
596
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
596
    {
489
596
        return m_value;
490
596
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
2.25k
    {
489
2.25k
        return m_value;
490
2.25k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_value() &
Line
Count
Source
488
39.1k
    {
489
39.1k
        return m_value;
490
39.1k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
26.1k
    {
489
26.1k
        return m_value;
490
26.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
19.5k
    {
489
19.5k
        return m_value;
490
19.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
19.5k
    {
489
19.5k
        return m_value;
490
19.5k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
190
    {
489
190
        return m_value;
490
190
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
6.54k
    {
489
6.54k
        return m_value;
490
6.54k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
3.70k
    {
489
3.70k
        return m_value;
490
3.70k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
1.95k
    {
489
1.95k
        return m_value;
490
1.95k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() &
Line
Count
Source
488
1.10k
    {
489
1.10k
        return m_value;
490
1.10k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_value() &
Line
Count
Source
488
1.10k
    {
489
1.10k
        return m_value;
490
1.10k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_value() &
491
    constexpr const T& get_value() const& noexcept
492
0
    {
493
0
        return m_value;
494
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_value() const &
495
    constexpr T&& get_value() && noexcept
496
0
    {
497
0
        return std::move(m_value);
498
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_value() &&
499
    constexpr const T&& get_value() const&& noexcept
500
    {
501
        return std::move(m_value);
502
    }
503
504
    constexpr unexpected<E>& get_unexpected() & noexcept
505
615k
    {
506
615k
        return m_unexpected;
507
615k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
48.3k
    {
506
48.3k
        return m_unexpected;
507
48.3k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
5.34k
    {
506
5.34k
        return m_unexpected;
507
5.34k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
176k
    {
506
176k
        return m_unexpected;
507
176k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
5.61k
    {
506
5.61k
        return m_unexpected;
507
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
5.61k
    {
506
5.61k
        return m_unexpected;
507
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
5.61k
    {
506
5.61k
        return m_unexpected;
507
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
5.61k
    {
506
5.61k
        return m_unexpected;
507
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
5.61k
    {
506
5.61k
        return m_unexpected;
507
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
4.96k
    {
506
4.96k
        return m_unexpected;
507
4.96k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
99.0k
    {
506
99.0k
        return m_unexpected;
507
99.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
10.9k
    {
506
10.9k
        return m_unexpected;
507
10.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
11.1k
    {
506
11.1k
        return m_unexpected;
507
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
11.1k
    {
506
11.1k
        return m_unexpected;
507
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
11.1k
    {
506
11.1k
        return m_unexpected;
507
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
11.1k
    {
506
11.1k
        return m_unexpected;
507
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
11.2k
    {
506
11.2k
        return m_unexpected;
507
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
10.6k
    {
506
10.6k
        return m_unexpected;
507
10.6k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
32.3k
    {
506
32.3k
        return m_unexpected;
507
32.3k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
80.3k
    {
506
80.3k
        return m_unexpected;
507
80.3k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
505
102
    {
506
102
        return m_unexpected;
507
102
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
505
446
    {
506
446
        return m_unexpected;
507
446
    }
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
238
    {
506
238
        return m_unexpected;
507
238
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
505
3.92k
    {
506
3.92k
        return m_unexpected;
507
3.92k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
6.21k
    {
506
6.21k
        return m_unexpected;
507
6.21k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
505
5.68k
    {
506
5.68k
        return m_unexpected;
507
5.68k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
505
352
    {
506
352
        return m_unexpected;
507
352
    }
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
116
    {
506
116
        return m_unexpected;
507
116
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
505
196
    {
506
196
        return m_unexpected;
507
196
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
505
2.16k
    {
506
2.16k
        return m_unexpected;
507
2.16k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
2.58k
    {
506
2.58k
        return m_unexpected;
507
2.58k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_unexpected() &
Line
Count
Source
505
39.4k
    {
506
39.4k
        return m_unexpected;
507
39.4k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::get_unexpected() &
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
505
238
    {
506
238
        return m_unexpected;
507
238
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
238
    {
506
238
        return m_unexpected;
507
238
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() &
Line
Count
Source
505
116
    {
506
116
        return m_unexpected;
507
116
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::get_unexpected() &
Line
Count
Source
505
116
    {
506
116
        return m_unexpected;
507
116
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::get_unexpected() &
508
    constexpr const unexpected<E>& get_unexpected() const& noexcept
509
0
    {
510
0
        return m_unexpected;
511
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::get_unexpected() const &
512
    constexpr unexpected<E>&& get_unexpected() && noexcept
513
116k
    {
514
116k
        return std::move(m_unexpected);
515
116k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
5.34k
    {
514
5.34k
        return std::move(m_unexpected);
515
5.34k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
5.61k
    {
514
5.61k
        return std::move(m_unexpected);
515
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
5.61k
    {
514
5.61k
        return std::move(m_unexpected);
515
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
5.61k
    {
514
5.61k
        return std::move(m_unexpected);
515
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
5.61k
    {
514
5.61k
        return std::move(m_unexpected);
515
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
5.61k
    {
514
5.61k
        return std::move(m_unexpected);
515
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
4.96k
    {
514
4.96k
        return std::move(m_unexpected);
515
4.96k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
10.9k
    {
514
10.9k
        return std::move(m_unexpected);
515
10.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
11.1k
    {
514
11.1k
        return std::move(m_unexpected);
515
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
11.1k
    {
514
11.1k
        return std::move(m_unexpected);
515
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
11.1k
    {
514
11.1k
        return std::move(m_unexpected);
515
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
11.1k
    {
514
11.1k
        return std::move(m_unexpected);
515
11.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
11.2k
    {
514
11.2k
        return std::move(m_unexpected);
515
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::get_unexpected() &&
Line
Count
Source
513
10.6k
    {
514
10.6k
        return std::move(m_unexpected);
515
10.6k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::get_unexpected() &&
516
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
517
    {
518
        return std::move(m_unexpected);
519
    }
520
521
    SCN_NODISCARD constexpr bool has_value() const noexcept
522
2.44M
    {
523
2.44M
        return m_has_value;
524
2.44M
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
101k
    {
523
101k
        return m_has_value;
524
101k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
16.5k
    {
523
16.5k
        return m_has_value;
524
16.5k
    }
scn::v4::detail::expected_storage_base<long, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
355k
    {
523
355k
        return m_has_value;
524
355k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
16.8k
    {
523
16.8k
        return m_has_value;
524
16.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
16.8k
    {
523
16.8k
        return m_has_value;
524
16.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
16.8k
    {
523
16.8k
        return m_has_value;
524
16.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
16.8k
    {
523
16.8k
        return m_has_value;
524
16.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
16.8k
    {
523
16.8k
        return m_has_value;
524
16.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
16.2k
    {
523
16.2k
        return m_has_value;
524
16.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
202k
    {
523
202k
        return m_has_value;
524
202k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
33.4k
    {
523
33.4k
        return m_has_value;
524
33.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
33.6k
    {
523
33.6k
        return m_has_value;
524
33.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
33.6k
    {
523
33.6k
        return m_has_value;
524
33.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
33.6k
    {
523
33.6k
        return m_has_value;
524
33.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
33.6k
    {
523
33.6k
        return m_has_value;
524
33.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
33.6k
    {
523
33.6k
        return m_has_value;
524
33.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
33.1k
    {
523
33.1k
        return m_has_value;
524
33.1k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<wchar_t, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::has_value() const
scn::v4::detail::expected_storage_base<char const*, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
111k
    {
523
111k
        return m_has_value;
524
111k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
420k
    {
523
420k
        return m_has_value;
524
420k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
96.9k
    {
523
96.9k
        return m_has_value;
524
96.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
20.1k
    {
523
20.1k
        return m_has_value;
524
20.1k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
10.2k
    {
523
10.2k
        return m_has_value;
524
10.2k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
18.5k
    {
523
18.5k
        return m_has_value;
524
18.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::has_value() const
Line
Count
Source
522
15.4k
    {
523
15.4k
        return m_has_value;
524
15.4k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
2.78k
    {
523
2.78k
        return m_has_value;
524
2.78k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
2.07k
    {
523
2.07k
        return m_has_value;
524
2.07k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
2.07k
    {
523
2.07k
        return m_has_value;
524
2.07k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
20.1k
    {
523
20.1k
        return m_has_value;
524
20.1k
    }
scn::v4::detail::expected_storage_base<char const*, scn::v4::impl::parse_error, true>::has_value() const
Line
Count
Source
522
23.9k
    {
523
23.9k
        return m_has_value;
524
23.9k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
7.40k
    {
523
7.40k
        return m_has_value;
524
7.40k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
5.54k
    {
523
5.54k
        return m_has_value;
524
5.54k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
5.54k
    {
523
5.54k
        return m_has_value;
524
5.54k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
716
    {
523
716
        return m_has_value;
524
716
    }
scn::v4::detail::expected_storage_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
1.85k
    {
523
1.85k
        return m_has_value;
524
1.85k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
246k
    {
523
246k
        return m_has_value;
524
246k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
4.98k
    {
523
4.98k
        return m_has_value;
524
4.98k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
4.95k
    {
523
4.95k
        return m_has_value;
524
4.95k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
13.4k
    {
523
13.4k
        return m_has_value;
524
13.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::has_value() const
Line
Count
Source
522
8.56k
    {
523
8.56k
        return m_has_value;
524
8.56k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
1.57k
    {
523
1.57k
        return m_has_value;
524
1.57k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
1.19k
    {
523
1.19k
        return m_has_value;
524
1.19k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
1.19k
    {
523
1.19k
        return m_has_value;
524
1.19k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
10.0k
    {
523
10.0k
        return m_has_value;
524
10.0k
    }
scn::v4::detail::expected_storage_base<wchar_t const*, scn::v4::impl::parse_error, true>::has_value() const
Line
Count
Source
522
215k
    {
523
215k
        return m_has_value;
524
215k
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
52.2k
    {
523
52.2k
        return m_has_value;
524
52.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
39.1k
    {
523
39.1k
        return m_has_value;
524
39.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
39.1k
    {
523
39.1k
        return m_has_value;
524
39.1k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
380
    {
523
380
        return m_has_value;
524
380
    }
scn::v4::detail::expected_storage_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
13.0k
    {
523
13.0k
        return m_has_value;
524
13.0k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
7.43k
    {
523
7.43k
        return m_has_value;
524
7.43k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
4.37k
    {
523
4.37k
        return m_has_value;
524
4.37k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::has_value() const
Line
Count
Source
522
2.43k
    {
523
2.43k
        return m_has_value;
524
2.43k
    }
scn::v4::detail::expected_storage_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::has_value() const
Line
Count
Source
522
2.43k
    {
523
2.43k
        return m_has_value;
524
2.43k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::has_value() const
525
526
    template <typename... Args>
527
    void construct(Args&&... args) noexcept(
528
        std::is_nothrow_constructible_v<T, Args...>)
529
0
    {
530
0
        scn::detail::construct_at(&get_value(), std::forward<Args>(args)...);
531
0
        m_has_value = true;
532
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double> >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
533
    template <typename... Args>
534
    void construct_unexpected(Args&&... args) noexcept(
535
        std::is_nothrow_constructible_v<E, Args...>)
536
116k
    {
537
116k
        scn::detail::construct_at(&get_unexpected(),
538
116k
                                  std::forward<Args>(args)...);
539
116k
        m_has_value = false;
540
116k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
5.34k
    {
537
5.34k
        scn::detail::construct_at(&get_unexpected(),
538
5.34k
                                  std::forward<Args>(args)...);
539
5.34k
        m_has_value = false;
540
5.34k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
5.61k
    {
537
5.61k
        scn::detail::construct_at(&get_unexpected(),
538
5.61k
                                  std::forward<Args>(args)...);
539
5.61k
        m_has_value = false;
540
5.61k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
5.61k
    {
537
5.61k
        scn::detail::construct_at(&get_unexpected(),
538
5.61k
                                  std::forward<Args>(args)...);
539
5.61k
        m_has_value = false;
540
5.61k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
5.61k
    {
537
5.61k
        scn::detail::construct_at(&get_unexpected(),
538
5.61k
                                  std::forward<Args>(args)...);
539
5.61k
        m_has_value = false;
540
5.61k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
5.61k
    {
537
5.61k
        scn::detail::construct_at(&get_unexpected(),
538
5.61k
                                  std::forward<Args>(args)...);
539
5.61k
        m_has_value = false;
540
5.61k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
5.61k
    {
537
5.61k
        scn::detail::construct_at(&get_unexpected(),
538
5.61k
                                  std::forward<Args>(args)...);
539
5.61k
        m_has_value = false;
540
5.61k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
4.96k
    {
537
4.96k
        scn::detail::construct_at(&get_unexpected(),
538
4.96k
                                  std::forward<Args>(args)...);
539
4.96k
        m_has_value = false;
540
4.96k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
10.9k
    {
537
10.9k
        scn::detail::construct_at(&get_unexpected(),
538
10.9k
                                  std::forward<Args>(args)...);
539
10.9k
        m_has_value = false;
540
10.9k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
11.1k
    {
537
11.1k
        scn::detail::construct_at(&get_unexpected(),
538
11.1k
                                  std::forward<Args>(args)...);
539
11.1k
        m_has_value = false;
540
11.1k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
11.1k
    {
537
11.1k
        scn::detail::construct_at(&get_unexpected(),
538
11.1k
                                  std::forward<Args>(args)...);
539
11.1k
        m_has_value = false;
540
11.1k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
11.1k
    {
537
11.1k
        scn::detail::construct_at(&get_unexpected(),
538
11.1k
                                  std::forward<Args>(args)...);
539
11.1k
        m_has_value = false;
540
11.1k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
11.1k
    {
537
11.1k
        scn::detail::construct_at(&get_unexpected(),
538
11.1k
                                  std::forward<Args>(args)...);
539
11.1k
        m_has_value = false;
540
11.1k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
11.2k
    {
537
11.2k
        scn::detail::construct_at(&get_unexpected(),
538
11.2k
                                  std::forward<Args>(args)...);
539
11.2k
        m_has_value = false;
540
11.2k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
536
10.6k
    {
537
10.6k
        scn::detail::construct_at(&get_unexpected(),
538
10.6k
                                  std::forward<Args>(args)...);
539
10.6k
        m_has_value = false;
540
10.6k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
541
542
    // No-op, because T and E are trivially destructible
543
116k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
5.34k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
5.61k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
5.61k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
5.61k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
5.61k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
5.61k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
4.96k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
10.9k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
11.1k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
11.1k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
11.1k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
11.1k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
11.2k
    static constexpr void destroy_value() noexcept {}
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::destroy_value()
Line
Count
Source
543
10.6k
    static constexpr void destroy_value() noexcept {}
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::destroy_value()
544
0
    static constexpr void destroy_unexpected() noexcept {}
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::destroy_unexpected()
545
546
private:
547
    union {
548
        T m_value;
549
        unexpected<E> m_unexpected;
550
        char m_deferred_init;
551
    };
552
    bool m_has_value;
553
};
554
555
template <typename E>
556
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, true> {
557
#if SCN_STD >= SCN_STD_20
558
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
559
#else
560
    constexpr expected_storage_base() noexcept
561
392k
        : m_deferred_init(), m_has_value(true)
562
392k
    {
563
392k
    }
564
#endif
565
566
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
567
        : m_deferred_init(), m_has_value(false)
568
    {
569
    }
570
571
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
572
        : m_has_value(true)
573
    {
574
    }
575
576
    template <typename... Args,
577
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
578
    explicit constexpr expected_storage_base(
579
        unexpect_t,
580
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
581
310k
        : m_unexpected(std::in_place, std::forward<Args>(args)...),
582
310k
          m_has_value(false)
583
310k
    {
584
310k
    }
585
586
    constexpr unexpected<E>& get_unexpected() & noexcept
587
173k
    {
588
173k
        return m_unexpected;
589
173k
    }
590
    constexpr const unexpected<E>& get_unexpected() const& noexcept
591
    {
592
        return m_unexpected;
593
    }
594
    constexpr unexpected<E>&& get_unexpected() && noexcept
595
    {
596
        return std::move(m_unexpected);
597
    }
598
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
599
    {
600
        return std::move(m_unexpected);
601
    }
602
603
    SCN_NODISCARD constexpr bool has_value() const noexcept
604
2.29M
    {
605
2.29M
        return m_has_value;
606
2.29M
    }
607
608
    template <typename... Args>
609
    void construct(Args&&...) noexcept
610
    {
611
        m_has_value = true;
612
    }
613
    template <typename... Args>
614
    void construct_unexpected(Args&&... args) noexcept(
615
        std::is_nothrow_constructible_v<E, Args...>)
616
    {
617
        scn::detail::construct_at(&get_unexpected(),
618
                                  std::forward<Args>(args)...);
619
        m_has_value = false;
620
    }
621
622
    static constexpr void destroy_value() noexcept {}
623
    static constexpr void destroy_unexpected() noexcept {}
624
625
private:
626
    union {
627
        unexpected<E> m_unexpected;
628
        char m_deferred_init;
629
    };
630
    bool m_has_value;
631
};
632
633
/**
634
 * Implementation of `std::max` without including `<algorithm>`
635
 */
636
template <typename T>
637
constexpr T max(T a, T b) noexcept
638
0
{
639
0
    return (a < b) ? b : a;
640
0
}
641
642
template <typename T, typename E>
643
struct SCN_TRIVIAL_ABI expected_storage_base<T, E, false> {
644
33.7k
    constexpr expected_storage_base() noexcept : m_has_value(true)
645
33.7k
    {
646
33.7k
        construct();
647
33.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
644
5.61k
    constexpr expected_storage_base() noexcept : m_has_value(true)
645
5.61k
    {
646
5.61k
        construct();
647
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
644
5.61k
    constexpr expected_storage_base() noexcept : m_has_value(true)
645
5.61k
    {
646
5.61k
        construct();
647
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
644
11.2k
    constexpr expected_storage_base() noexcept : m_has_value(true)
645
11.2k
    {
646
11.2k
        construct();
647
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base()
Line
Count
Source
644
11.2k
    constexpr expected_storage_base() noexcept : m_has_value(true)
645
11.2k
    {
646
11.2k
        construct();
647
11.2k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base()
648
649
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
650
        : m_has_value(false)
651
    {
652
    }
653
654
    template <typename... Args,
655
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
656
    explicit constexpr expected_storage_base(
657
        std::in_place_t,
658
        Args&&... args) noexcept(std::is_nothrow_constructible_v<T, Args...>)
659
16
        : m_has_value(true)
660
16
    {
661
16
        construct(std::forward<Args>(args)...);
662
16
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
659
8
        : m_has_value(true)
660
8
    {
661
8
        construct(std::forward<Args>(args)...);
662
8
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::in_place_t, std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
659
8
        : m_has_value(true)
660
8
    {
661
8
        construct(std::forward<Args>(args)...);
662
8
    }
663
664
    template <typename... Args,
665
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
666
    explicit constexpr expected_storage_base(
667
        unexpect_t,
668
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
669
31.4k
        : m_has_value(false)
670
31.4k
    {
671
31.4k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
672
31.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
669
4.96k
        : m_has_value(false)
670
4.96k
    {
671
4.96k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
672
4.96k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
669
4.96k
        : m_has_value(false)
670
4.96k
    {
671
4.96k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
672
4.96k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
669
10.6k
        : m_has_value(false)
670
10.6k
    {
671
10.6k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
672
10.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
669
10.6k
        : m_has_value(false)
670
10.6k
    {
671
10.6k
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
672
10.6k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
669
24
        : m_has_value(false)
670
24
    {
671
24
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
672
24
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
669
20
        : m_has_value(false)
670
20
    {
671
20
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
672
20
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
669
44
        : m_has_value(false)
670
44
    {
671
44
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
672
44
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
669
40
        : m_has_value(false)
670
40
    {
671
40
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
672
40
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::expected_storage_base<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
673
674
    ~expected_storage_base()
675
65.1k
    {
676
65.1k
        if (has_value()) {
677
2.39k
            destroy_value();
678
2.39k
        }
679
62.7k
        else {
680
62.7k
            destroy_unexpected();
681
62.7k
        }
682
65.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
675
10.5k
    {
676
10.5k
        if (has_value()) {
677
652
            destroy_value();
678
652
        }
679
9.93k
        else {
680
9.93k
            destroy_unexpected();
681
9.93k
        }
682
10.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
675
10.5k
    {
676
10.5k
        if (has_value()) {
677
652
            destroy_value();
678
652
        }
679
9.93k
        else {
680
9.93k
            destroy_unexpected();
681
9.93k
        }
682
10.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
675
21.9k
    {
676
21.9k
        if (has_value()) {
677
538
            destroy_value();
678
538
        }
679
21.3k
        else {
680
21.3k
            destroy_unexpected();
681
21.3k
        }
682
21.9k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
675
21.9k
    {
676
21.9k
        if (has_value()) {
677
538
            destroy_value();
678
538
        }
679
21.3k
        else {
680
21.3k
            destroy_unexpected();
681
21.3k
        }
682
21.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
675
24
    {
676
24
        if (has_value()) {
677
0
            destroy_value();
678
0
        }
679
24
        else {
680
24
            destroy_unexpected();
681
24
        }
682
24
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
675
20
    {
676
20
        if (has_value()) {
677
0
            destroy_value();
678
0
        }
679
20
        else {
680
20
            destroy_unexpected();
681
20
        }
682
20
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
675
52
    {
676
52
        if (has_value()) {
677
8
            destroy_value();
678
8
        }
679
44
        else {
680
44
            destroy_unexpected();
681
44
        }
682
52
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Line
Count
Source
675
48
    {
676
48
        if (has_value()) {
677
8
            destroy_value();
678
8
        }
679
40
        else {
680
40
            destroy_unexpected();
681
40
        }
682
48
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::~expected_storage_base()
683
684
    constexpr T& get_value() & noexcept
685
36.1k
    {
686
36.1k
        return *value_ptr();
687
36.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
685
6.27k
    {
686
6.27k
        return *value_ptr();
687
6.27k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
685
6.27k
    {
686
6.27k
        return *value_ptr();
687
6.27k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
685
11.7k
    {
686
11.7k
        return *value_ptr();
687
11.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
685
11.7k
    {
686
11.7k
        return *value_ptr();
687
11.7k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
685
8
    {
686
8
        return *value_ptr();
687
8
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Line
Count
Source
685
8
    {
686
8
        return *value_ptr();
687
8
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &
688
    constexpr const T& get_value() const& noexcept
689
    {
690
        return *value_ptr();
691
    }
692
    constexpr T&& get_value() && noexcept
693
0
    {
694
0
        return std::move(*value_ptr());
695
0
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_value() &&
696
    constexpr const T&& get_value() const&& noexcept
697
    {
698
        return std::move(*value_ptr());
699
    }
700
701
    constexpr unexpected<E>& get_unexpected() & noexcept
702
128
    {
703
128
        return *unexpected_ptr();
704
128
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Line
Count
Source
702
24
    {
703
24
        return *unexpected_ptr();
704
24
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Line
Count
Source
702
20
    {
703
20
        return *unexpected_ptr();
704
20
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Line
Count
Source
702
44
    {
703
44
        return *unexpected_ptr();
704
44
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Line
Count
Source
702
40
    {
703
40
        return *unexpected_ptr();
704
40
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &
705
    constexpr const unexpected<E>& get_unexpected() const& noexcept
706
    {
707
        return *unexpected_ptr();
708
    }
709
    constexpr unexpected<E>&& get_unexpected() && noexcept
710
31.3k
    {
711
31.3k
        return std::move(*unexpected_ptr());
712
31.3k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
710
4.96k
    {
711
4.96k
        return std::move(*unexpected_ptr());
712
4.96k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
710
4.96k
    {
711
4.96k
        return std::move(*unexpected_ptr());
712
4.96k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
710
10.6k
    {
711
10.6k
        return std::move(*unexpected_ptr());
712
10.6k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::get_unexpected() &&
Line
Count
Source
710
10.6k
    {
711
10.6k
        return std::move(*unexpected_ptr());
712
10.6k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::get_unexpected() &&
713
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
714
    {
715
        return std::move(*unexpected_ptr());
716
    }
717
718
    SCN_NODISCARD constexpr bool has_value() const noexcept
719
164k
    {
720
164k
        return m_has_value;
721
164k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
719
26.7k
    {
720
26.7k
        return m_has_value;
721
26.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
719
26.7k
    {
720
26.7k
        return m_has_value;
721
26.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
719
55.1k
    {
720
55.1k
        return m_has_value;
721
55.1k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
719
55.1k
    {
720
55.1k
        return m_has_value;
721
55.1k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
719
72
    {
720
72
        return m_has_value;
721
72
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
719
60
    {
720
60
        return m_has_value;
721
60
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
719
156
    {
720
156
        return m_has_value;
721
156
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Line
Count
Source
719
144
    {
720
144
        return m_has_value;
721
144
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::has_value() const
722
723
    template <typename... Args>
724
    void construct(Args&&... args) noexcept(
725
        std::is_nothrow_constructible_v<T, Args...>)
726
33.7k
    {
727
33.7k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
728
33.7k
        m_has_value = true;
729
33.7k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
726
5.61k
    {
727
5.61k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
728
5.61k
        m_has_value = true;
729
5.61k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
726
5.61k
    {
727
5.61k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
728
5.61k
        m_has_value = true;
729
5.61k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
726
11.2k
    {
727
11.2k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
728
11.2k
        m_has_value = true;
729
11.2k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<>()
Line
Count
Source
726
11.2k
    {
727
11.2k
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
728
11.2k
        m_has_value = true;
729
11.2k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
726
8
    {
727
8
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
728
8
        m_has_value = true;
729
8
    }
void scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
726
8
    {
727
8
        scn::detail::construct_at(value_ptr(), std::forward<Args>(args)...);
728
8
        m_has_value = true;
729
8
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<>()
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
730
    template <typename... Args>
731
    void construct_unexpected(Args&&... args) noexcept(
732
        std::is_nothrow_constructible_v<E, Args...>)
733
62.7k
    {
734
62.7k
        scn::detail::construct_at(unexpected_ptr(),
735
62.7k
                                  std::forward<Args>(args)...);
736
62.7k
        m_has_value = false;
737
62.7k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
733
4.96k
    {
734
4.96k
        scn::detail::construct_at(unexpected_ptr(),
735
4.96k
                                  std::forward<Args>(args)...);
736
4.96k
        m_has_value = false;
737
4.96k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
733
4.96k
    {
734
4.96k
        scn::detail::construct_at(unexpected_ptr(),
735
4.96k
                                  std::forward<Args>(args)...);
736
4.96k
        m_has_value = false;
737
4.96k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
733
4.96k
    {
734
4.96k
        scn::detail::construct_at(unexpected_ptr(),
735
4.96k
                                  std::forward<Args>(args)...);
736
4.96k
        m_has_value = false;
737
4.96k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
733
4.96k
    {
734
4.96k
        scn::detail::construct_at(unexpected_ptr(),
735
4.96k
                                  std::forward<Args>(args)...);
736
4.96k
        m_has_value = false;
737
4.96k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
733
10.6k
    {
734
10.6k
        scn::detail::construct_at(unexpected_ptr(),
735
10.6k
                                  std::forward<Args>(args)...);
736
10.6k
        m_has_value = false;
737
10.6k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
733
10.6k
    {
734
10.6k
        scn::detail::construct_at(unexpected_ptr(),
735
10.6k
                                  std::forward<Args>(args)...);
736
10.6k
        m_has_value = false;
737
10.6k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
733
10.6k
    {
734
10.6k
        scn::detail::construct_at(unexpected_ptr(),
735
10.6k
                                  std::forward<Args>(args)...);
736
10.6k
        m_has_value = false;
737
10.6k
    }
void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Line
Count
Source
733
10.6k
    {
734
10.6k
        scn::detail::construct_at(unexpected_ptr(),
735
10.6k
                                  std::forward<Args>(args)...);
736
10.6k
        m_has_value = false;
737
10.6k
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
733
24
    {
734
24
        scn::detail::construct_at(unexpected_ptr(),
735
24
                                  std::forward<Args>(args)...);
736
24
        m_has_value = false;
737
24
    }
void scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
733
20
    {
734
20
        scn::detail::construct_at(unexpected_ptr(),
735
20
                                  std::forward<Args>(args)...);
736
20
        m_has_value = false;
737
20
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
void scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
733
44
    {
734
44
        scn::detail::construct_at(unexpected_ptr(),
735
44
                                  std::forward<Args>(args)...);
736
44
        m_has_value = false;
737
44
    }
void scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Line
Count
Source
733
40
    {
734
40
        scn::detail::construct_at(unexpected_ptr(),
735
40
                                  std::forward<Args>(args)...);
736
40
        m_has_value = false;
737
40
    }
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<std::__1::in_place_t const&, scn::v4::scan_error>(std::__1::in_place_t const&, scn::v4::scan_error&&)
Unexecuted instantiation: void scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::construct_unexpected<scn::v4::unexpected<scn::v4::scan_error> >(scn::v4::unexpected<scn::v4::scan_error>&&)
738
739
    void destroy_value() noexcept
740
33.7k
    {
741
33.7k
        scn::detail::destroy_at(value_ptr());
742
33.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
740
5.61k
    {
741
5.61k
        scn::detail::destroy_at(value_ptr());
742
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
740
5.61k
    {
741
5.61k
        scn::detail::destroy_at(value_ptr());
742
5.61k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
740
11.2k
    {
741
11.2k
        scn::detail::destroy_at(value_ptr());
742
11.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
740
11.2k
    {
741
11.2k
        scn::detail::destroy_at(value_ptr());
742
11.2k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
740
8
    {
741
8
        scn::detail::destroy_at(value_ptr());
742
8
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Line
Count
Source
740
8
    {
741
8
        scn::detail::destroy_at(value_ptr());
742
8
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_value()
743
    void destroy_unexpected() noexcept
744
62.7k
    {
745
62.7k
        scn::detail::destroy_at(unexpected_ptr());
746
62.7k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
744
9.93k
    {
745
9.93k
        scn::detail::destroy_at(unexpected_ptr());
746
9.93k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
744
9.93k
    {
745
9.93k
        scn::detail::destroy_at(unexpected_ptr());
746
9.93k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
744
21.3k
    {
745
21.3k
        scn::detail::destroy_at(unexpected_ptr());
746
21.3k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
744
21.3k
    {
745
21.3k
        scn::detail::destroy_at(unexpected_ptr());
746
21.3k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
744
24
    {
745
24
        scn::detail::destroy_at(unexpected_ptr());
746
24
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
744
20
    {
745
20
        scn::detail::destroy_at(unexpected_ptr());
746
20
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
744
44
    {
745
44
        scn::detail::destroy_at(unexpected_ptr());
746
44
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Line
Count
Source
744
40
    {
745
40
        scn::detail::destroy_at(unexpected_ptr());
746
40
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::destroy_unexpected()
747
748
private:
749
    T* value_ptr() noexcept
750
103k
    {
751
103k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
752
103k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
750
17.5k
    {
751
17.5k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
752
17.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
750
17.5k
    {
751
17.5k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
752
17.5k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
750
34.2k
    {
751
34.2k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
752
34.2k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
750
34.2k
    {
751
34.2k
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
752
34.2k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
750
24
    {
751
24
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
752
24
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Line
Count
Source
750
24
    {
751
24
        return reinterpret_cast<T*>(SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
752
24
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::value_ptr()
753
    const T* value_ptr() const noexcept
754
    {
755
        return reinterpret_cast<const T*>(
756
            SCN_ASSUME_ALIGNED(m_memory, alignof(T)));
757
    }
758
759
    SCN_GCC_PUSH
760
    SCN_GCC_IGNORE("-Wcast-align")
761
    unexpected<E>* unexpected_ptr() noexcept
762
157k
    {
763
157k
        return reinterpret_cast<unexpected<E>*>(
764
157k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
765
157k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
762
24.8k
    {
763
24.8k
        return reinterpret_cast<unexpected<E>*>(
764
24.8k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
765
24.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
762
24.8k
    {
763
24.8k
        return reinterpret_cast<unexpected<E>*>(
764
24.8k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
765
24.8k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
762
53.4k
    {
763
53.4k
        return reinterpret_cast<unexpected<E>*>(
764
53.4k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
765
53.4k
    }
scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
762
53.4k
    {
763
53.4k
        return reinterpret_cast<unexpected<E>*>(
764
53.4k
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
765
53.4k
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
762
72
    {
763
72
        return reinterpret_cast<unexpected<E>*>(
764
72
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
765
72
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
762
60
    {
763
60
        return reinterpret_cast<unexpected<E>*>(
764
60
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
765
60
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
scn::v4::detail::expected_storage_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
762
132
    {
763
132
        return reinterpret_cast<unexpected<E>*>(
764
132
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
765
132
    }
scn::v4::detail::expected_storage_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Line
Count
Source
762
120
    {
763
120
        return reinterpret_cast<unexpected<E>*>(
764
120
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
765
120
    }
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
Unexecuted instantiation: scn::v4::detail::expected_storage_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, false>::unexpected_ptr()
766
    const unexpected<E>* unexpected_ptr() const noexcept
767
    {
768
        return reinterpret_cast<const unexpected<E>*>(
769
            SCN_ASSUME_ALIGNED(m_memory, alignof(unexpected<E>)));
770
    }
771
    SCN_GCC_POP
772
773
    static constexpr std::size_t required_size =
774
        detail::max(sizeof(T), sizeof(unexpected<E>));
775
    static constexpr std::size_t required_alignment =
776
        detail::max(alignof(T), alignof(unexpected<E>));
777
778
    alignas(required_alignment) unsigned char m_memory[required_size];
779
    bool m_has_value;
780
};
781
782
template <typename E>
783
struct SCN_TRIVIAL_ABI expected_storage_base<void, E, false> {
784
    constexpr expected_storage_base() noexcept : m_has_value(true) {}
785
786
    explicit constexpr expected_storage_base(deferred_init_tag_t) noexcept
787
        : m_has_value(false)
788
    {
789
    }
790
791
    explicit constexpr expected_storage_base(std::in_place_t) noexcept
792
        : m_has_value(true)
793
    {
794
    }
795
796
    template <typename... Args,
797
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
798
    explicit constexpr expected_storage_base(
799
        unexpect_t,
800
        Args&&... args) noexcept(std::is_nothrow_constructible_v<E, Args...>)
801
        : m_has_value(false)
802
    {
803
        construct_unexpected(std::in_place, std::forward<Args>(args)...);
804
    }
805
806
    ~expected_storage_base()
807
    {
808
        if (!has_value()) {
809
            destroy_unexpected();
810
        }
811
    }
812
813
    constexpr unexpected<E>& get_unexpected() & noexcept
814
    {
815
        return *unexpected_ptr();
816
    }
817
    constexpr const unexpected<E>& get_unexpected() const& noexcept
818
    {
819
        return *unexpected_ptr();
820
    }
821
    constexpr unexpected<E>&& get_unexpected() && noexcept
822
    {
823
        return std::move(*unexpected_ptr());
824
    }
825
    constexpr const unexpected<E>&& get_unexpected() const&& noexcept
826
    {
827
        return std::move(*unexpected_ptr());
828
    }
829
830
    SCN_NODISCARD constexpr bool has_value() const noexcept
831
    {
832
        return m_has_value;
833
    }
834
835
    template <typename... Args>
836
    constexpr void construct(Args&&...) noexcept
837
    {
838
        m_has_value = true;
839
    }
840
    template <typename... Args>
841
    void construct_unexpected(Args&&... args) noexcept(
842
        std::is_nothrow_constructible_v<E, Args...>)
843
    {
844
        scn::detail::construct_at(unexpected_ptr(),
845
                                  std::forward<Args>(args)...);
846
        m_has_value = false;
847
    }
848
849
    static constexpr void destroy_value() noexcept {}
850
    void destroy_unexpected() noexcept
851
    {
852
        scn::detail::destroy_at(unexpected_ptr());
853
    }
854
855
private:
856
    SCN_GCC_PUSH
857
    SCN_GCC_IGNORE("-Wcast-align")
858
    unexpected<E>* unexpected_ptr()
859
    {
860
        return reinterpret_cast<unexpected<E>*>(m_memory);
861
    }
862
    const unexpected<E>* unexpected_ptr() const
863
    {
864
        return reinterpret_cast<const unexpected<E>*>(m_memory);
865
    }
866
    SCN_GCC_POP
867
868
    static constexpr std::size_t required_size = sizeof(unexpected<E>);
869
    static constexpr std::size_t required_alignment = alignof(unexpected<E>);
870
871
    alignas(required_alignment) unsigned char m_memory[required_size];
872
    bool m_has_value;
873
};
874
875
template <typename T, typename U>
876
using is_void_or = std::conditional_t<std::is_void_v<T>, std::true_type, U>;
877
878
template <typename T, typename E, typename Enable = void>
879
struct expected_operations_base;
880
881
template <typename T, typename E>
882
struct SCN_TRIVIAL_ABI expected_operations_base<
883
    T,
884
    E,
885
    std::enable_if_t<(std::is_void_v<T> || std::is_trivially_copyable_v<T>) &&
886
                     std::is_trivially_copyable_v<E>>>
887
    : expected_storage_base<T, E> {
888
    using expected_storage_base<T, E>::expected_storage_base;
889
};
890
891
template <typename T, typename E>
892
struct SCN_TRIVIAL_ABI expected_operations_base<
893
    T,
894
    E,
895
    std::enable_if_t<!std::is_void_v<T> && (!std::is_trivially_copyable_v<T> ||
896
                                            !std::is_trivially_copyable_v<E>)>>
897
    : expected_storage_base<T, E> {
898
    using expected_storage_base<T, E>::expected_storage_base;
899
900
    expected_operations_base(const expected_operations_base& other) noexcept(
901
        std::is_nothrow_copy_constructible_v<T> &&
902
        std::is_nothrow_copy_constructible_v<E>)
903
        : expected_storage_base<T, E>(deferred_init_tag)
904
    {
905
        construct_common(other);
906
    }
907
    expected_operations_base(expected_operations_base&& other) noexcept(
908
        std::is_nothrow_move_constructible_v<T> &&
909
        std::is_nothrow_move_constructible_v<E>)
910
        : expected_storage_base<T, E>(deferred_init_tag)
911
    {
912
        construct_common(std::move(other));
913
    }
914
915
    expected_operations_base& operator=(const expected_operations_base& other)
916
    // gcc 11 and lower evaluate noexcept in a weird context
917
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
918
        noexcept(noexcept(
919
            SCN_DECLVAL(expected_operations_base&).assign_common(other)))
920
#else
921
        noexcept(noexcept(assign_common(other)))
922
#endif
923
    {
924
        assign_common(other);
925
        return *this;
926
    }
927
    expected_operations_base& operator=(expected_operations_base&& other)
928
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
929
        noexcept(noexcept(SCN_DECLVAL(expected_operations_base&)
930
                              .assign_common(std::move(other))))
931
#else
932
        noexcept(noexcept(assign_common(std::move(other))))
933
#endif
934
147k
    {
935
147k
        assign_common(std::move(other));
936
147k
        return *this;
937
147k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
5.34k
    {
935
5.34k
        assign_common(std::move(other));
936
5.34k
        return *this;
937
5.34k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
5.61k
    {
935
5.61k
        assign_common(std::move(other));
936
5.61k
        return *this;
937
5.61k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
5.61k
    {
935
5.61k
        assign_common(std::move(other));
936
5.61k
        return *this;
937
5.61k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
5.61k
    {
935
5.61k
        assign_common(std::move(other));
936
5.61k
        return *this;
937
5.61k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
5.61k
    {
935
5.61k
        assign_common(std::move(other));
936
5.61k
        return *this;
937
5.61k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
5.61k
    {
935
5.61k
        assign_common(std::move(other));
936
5.61k
        return *this;
937
5.61k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
934
4.96k
    {
935
4.96k
        assign_common(std::move(other));
936
4.96k
        return *this;
937
4.96k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
934
4.96k
    {
935
4.96k
        assign_common(std::move(other));
936
4.96k
        return *this;
937
4.96k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
934
4.96k
    {
935
4.96k
        assign_common(std::move(other));
936
4.96k
        return *this;
937
4.96k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
10.9k
    {
935
10.9k
        assign_common(std::move(other));
936
10.9k
        return *this;
937
10.9k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
11.1k
    {
935
11.1k
        assign_common(std::move(other));
936
11.1k
        return *this;
937
11.1k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
11.1k
    {
935
11.1k
        assign_common(std::move(other));
936
11.1k
        return *this;
937
11.1k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
11.1k
    {
935
11.1k
        assign_common(std::move(other));
936
11.1k
        return *this;
937
11.1k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
11.1k
    {
935
11.1k
        assign_common(std::move(other));
936
11.1k
        return *this;
937
11.1k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>&&)
Line
Count
Source
934
11.2k
    {
935
11.2k
        assign_common(std::move(other));
936
11.2k
        return *this;
937
11.2k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
934
10.6k
    {
935
10.6k
        assign_common(std::move(other));
936
10.6k
        return *this;
937
10.6k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
934
10.6k
    {
935
10.6k
        assign_common(std::move(other));
936
10.6k
        return *this;
937
10.6k
    }
scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
934
10.6k
    {
935
10.6k
        assign_common(std::move(other));
936
10.6k
        return *this;
937
10.6k
    }
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::operator=(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
938
939
    ~expected_operations_base() = default;
940
941
private:
942
    template <typename Other>
943
    void construct_common(Other&& other) noexcept(
944
        noexcept(SCN_DECLVAL(expected_storage_base<T, E>)
945
                     .construct(std::forward<Other>(other).get_value())) &&
946
        noexcept(SCN_DECLVAL(expected_storage_base<T, E>)
947
                     .construct_unexpected(
948
                         std::forward<Other>(other).get_unexpected())))
949
0
    {
950
0
        if (other.has_value()) {
951
0
            this->construct(std::forward<Other>(other).get_value());
952
0
        }
953
0
        else {
954
0
            this->construct_unexpected(
955
0
                std::forward<Other>(other).get_unexpected());
956
0
        }
957
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::construct_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
958
959
    template <typename Other>
960
    void assign_common(Other&& other)
961
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
962
        noexcept(
963
            noexcept(SCN_DECLVAL(expected_operations_base&)
964
                         .reassign_value(std::forward<Other>(other))) &&
965
            noexcept(SCN_DECLVAL(expected_operations_base&)
966
                         .reassign_unexpected(std::forward<Other>(other))) &&
967
            noexcept(SCN_DECLVAL(expected_operations_base&)
968
                         .assign_value_over_unexpected(
969
                             std::forward<Other>(other))) &&
970
            noexcept(
971
                SCN_DECLVAL(expected_operations_base&)
972
                    .assign_unexpected_over_value(std::forward<Other>(other))))
973
#else
974
        noexcept(
975
            noexcept(reassign_value(std::forward<Other>(other))) &&
976
            noexcept(reassign_unexpected(std::forward<Other>(other))) &&
977
            noexcept(
978
                assign_value_over_unexpected(std::forward<Other>(other))) &&
979
            noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
980
#endif
981
147k
    {
982
147k
        if (this->has_value()) {
983
147k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
147k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
147k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
5.34k
    {
982
5.34k
        if (this->has_value()) {
983
5.34k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
5.34k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
5.34k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
5.61k
    {
982
5.61k
        if (this->has_value()) {
983
5.61k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
5.61k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
5.61k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
5.61k
    {
982
5.61k
        if (this->has_value()) {
983
5.61k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
5.61k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
5.61k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
5.61k
    {
982
5.61k
        if (this->has_value()) {
983
5.61k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
5.61k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
5.61k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
5.61k
    {
982
5.61k
        if (this->has_value()) {
983
5.61k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
5.61k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
5.61k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
5.61k
    {
982
5.61k
        if (this->has_value()) {
983
5.61k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
5.61k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
5.61k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
981
4.96k
    {
982
4.96k
        if (this->has_value()) {
983
4.96k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
4.96k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
4.96k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
981
4.96k
    {
982
4.96k
        if (this->has_value()) {
983
4.96k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
4.96k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
4.96k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
981
4.96k
    {
982
4.96k
        if (this->has_value()) {
983
4.96k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
4.96k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
4.96k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
10.9k
    {
982
10.9k
        if (this->has_value()) {
983
10.9k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
10.9k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
10.9k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
11.1k
    {
982
11.1k
        if (this->has_value()) {
983
11.1k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
11.1k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
11.1k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
11.1k
    {
982
11.1k
        if (this->has_value()) {
983
11.1k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
11.1k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
11.1k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
11.1k
    {
982
11.1k
        if (this->has_value()) {
983
11.1k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
11.1k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
11.1k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
11.1k
    {
982
11.1k
        if (this->has_value()) {
983
11.1k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
11.1k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
11.1k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>&&)
Line
Count
Source
981
11.2k
    {
982
11.2k
        if (this->has_value()) {
983
11.2k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
11.2k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
11.2k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
981
10.6k
    {
982
10.6k
        if (this->has_value()) {
983
10.6k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
10.6k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
10.6k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
981
10.6k
    {
982
10.6k
        if (this->has_value()) {
983
10.6k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
10.6k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
10.6k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
981
10.6k
    {
982
10.6k
        if (this->has_value()) {
983
10.6k
            if (other.has_value()) {
984
0
                return reassign_value(std::forward<Other>(other));
985
0
            }
986
10.6k
            return assign_unexpected_over_value(std::forward<Other>(other));
987
10.6k
        }
988
989
0
        if (other.has_value()) {
990
0
            return assign_value_over_unexpected(std::forward<Other>(other));
991
0
        }
992
0
        return reassign_unexpected(std::forward<Other>(other));
993
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_common<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
994
995
    template <typename Other>
996
    void reassign_value(Other&& other) noexcept(
997
        std::is_nothrow_assignable_v<
998
            T,
999
            decltype(std::forward<Other>(other).get_value())>)
1000
0
    {
1001
0
        this->get_value() = std::forward<Other>(other).get_value();
1002
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1003
1004
    template <typename Other>
1005
    void reassign_unexpected(Other&& other) noexcept(
1006
        std::is_nothrow_assignable_v<
1007
            E,
1008
            decltype(std::forward<Other>(other).get_unexpected())>)
1009
0
    {
1010
0
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
1011
0
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::reassign_unexpected<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1012
1013
#if SCN_HAS_EXCEPTIONS
1014
    void assign_value_over_unexpected(
1015
        const expected_operations_base&
1016
            other) noexcept(std::is_nothrow_copy_constructible_v<T> ||
1017
                            std::is_nothrow_move_constructible_v<T>)
1018
    {
1019
        if constexpr (std::is_nothrow_copy_constructible_v<T>) {
1020
            this->destroy_unexpected();
1021
            this->construct(other.get_value());
1022
        }
1023
        else if constexpr (std::is_nothrow_move_constructible_v<T>) {
1024
            T tmp = other.get_value();
1025
            this->destroy_unexpected();
1026
            this->construct(std::move(tmp));
1027
        }
1028
        else {
1029
            auto tmp = std::move(this->get_unexpecetd());
1030
            this->destroy_unexpected();
1031
1032
            try {
1033
                this->construct(other.get());
1034
            }
1035
            catch (...) {
1036
                this->construct_unexpected(std::move(tmp));
1037
                throw;
1038
            }
1039
        }
1040
    }
1041
1042
    void
1043
    assign_value_over_unexpected(expected_operations_base&& other) noexcept(
1044
        std::is_nothrow_move_constructible_v<T>)
1045
0
    {
1046
0
        if constexpr (std::is_nothrow_move_constructible_v<T>) {
1047
0
            this->destroy_unexpected();
1048
0
            this->construct(std::move(other).get_value());
1049
        }
1050
        else {
1051
            auto tmp = std::move(this->get_unexpected());
1052
            this->destroy_unexpected();
1053
1054
            try {
1055
                this->construct(std::move(other).get_value());
1056
            }
1057
            catch (...) {
1058
                this->construct_unexpected(std::move(tmp));
1059
                throw;
1060
            }
1061
        }
1062
0
    }
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_value_over_unexpected(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1063
#else
1064
    template <typename Other>
1065
    void assing_value_over_unexpected(Other&& other) noexcept
1066
    {
1067
        this->destroy_unexpected();
1068
        this->construct_value(std::forward<Other>(other).get_value());
1069
    }
1070
#endif
1071
1072
    template <typename Other>
1073
    void assign_unexpected_over_value(Other&& other) noexcept(
1074
        std::is_nothrow_constructible_v<
1075
            E,
1076
            decltype(std::forward<Other>(other).get_unexpected())>)
1077
147k
    {
1078
147k
        this->destroy_value();
1079
147k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
147k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
5.34k
    {
1078
5.34k
        this->destroy_value();
1079
5.34k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
5.34k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
5.61k
    {
1078
5.61k
        this->destroy_value();
1079
5.61k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
5.61k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
5.61k
    {
1078
5.61k
        this->destroy_value();
1079
5.61k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
5.61k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
5.61k
    {
1078
5.61k
        this->destroy_value();
1079
5.61k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
5.61k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
5.61k
    {
1078
5.61k
        this->destroy_value();
1079
5.61k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
5.61k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
5.61k
    {
1078
5.61k
        this->destroy_value();
1079
5.61k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
5.61k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
4.96k
    {
1078
4.96k
        this->destroy_value();
1079
4.96k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
4.96k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
4.96k
    {
1078
4.96k
        this->destroy_value();
1079
4.96k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
4.96k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
4.96k
    {
1078
4.96k
        this->destroy_value();
1079
4.96k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
4.96k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
10.9k
    {
1078
10.9k
        this->destroy_value();
1079
10.9k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
10.9k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
11.1k
    {
1078
11.1k
        this->destroy_value();
1079
11.1k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
11.1k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
11.1k
    {
1078
11.1k
        this->destroy_value();
1079
11.1k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
11.1k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
11.1k
    {
1078
11.1k
        this->destroy_value();
1079
11.1k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
11.1k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
11.1k
    {
1078
11.1k
        this->destroy_value();
1079
11.1k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
11.1k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
11.2k
    {
1078
11.2k
        this->destroy_value();
1079
11.2k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
11.2k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
10.6k
    {
1078
10.6k
        this->destroy_value();
1079
10.6k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
10.6k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
10.6k
    {
1078
10.6k
        this->destroy_value();
1079
10.6k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
10.6k
    }
void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, void>&&)
Line
Count
Source
1077
10.6k
    {
1078
10.6k
        this->destroy_value();
1079
10.6k
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1080
10.6k
    }
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, void>&&)
Unexecuted instantiation: void scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>::assign_unexpected_over_value<scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void> >(scn::v4::detail::expected_operations_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, void>&&)
1081
};
1082
1083
template <typename E>
1084
struct SCN_TRIVIAL_ABI
1085
    expected_operations_base<void,
1086
                             E,
1087
                             std::enable_if_t<!std::is_trivially_copyable_v<E>>>
1088
    : expected_storage_base<void, E> {
1089
    using expected_storage_base<void, E>::expected_storage_base;
1090
1091
    expected_operations_base(const expected_operations_base& other) noexcept(
1092
        std::is_nothrow_copy_constructible_v<E>)
1093
        : expected_storage_base<void, E>(deferred_init_tag)
1094
    {
1095
        construct_common(other);
1096
    }
1097
    expected_operations_base(expected_operations_base&& other) noexcept(
1098
        std::is_nothrow_move_constructible_v<E>)
1099
        : expected_storage_base<void, E>(deferred_init_tag)
1100
    {
1101
        construct_common(std::move(other));
1102
    }
1103
1104
    expected_operations_base& operator=(const expected_operations_base& other)
1105
    // gcc 11 and lower evaluate noexcept in a weird context
1106
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1107
        noexcept(noexcept(
1108
            SCN_DECLVAL(expected_operations_base&).assign_common(other)))
1109
#else
1110
        noexcept(noexcept(assign_common(other)))
1111
#endif
1112
    {
1113
        assign_common(other);
1114
        return *this;
1115
    }
1116
    expected_operations_base& operator=(expected_operations_base&& other)
1117
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1118
        noexcept(noexcept(SCN_DECLVAL(expected_operations_base&)
1119
                              .assign_common(std::move(other))))
1120
#else
1121
        noexcept(noexcept(assign_common(std::move(other))))
1122
#endif
1123
    {
1124
        assign_common(std::move(other));
1125
        return *this;
1126
    }
1127
1128
    ~expected_operations_base() = default;
1129
1130
private:
1131
    template <typename Other>
1132
    void construct_common(Other&& other) noexcept(
1133
        noexcept(expected_storage_base<void, E>::construct_unexpected(
1134
            std::forward<Other>(other).get_unexpected())))
1135
    {
1136
        if (other.has_value()) {
1137
            this->construct();
1138
        }
1139
        else {
1140
            this->construct_unexpected(
1141
                std::forward<Other>(other).get_unexpected());
1142
        }
1143
    }
1144
1145
    template <typename Other>
1146
    void assign_common(Other&& other)
1147
#if SCN_GCC && SCN_GCC < SCN_COMPILER(12, 0, 0)
1148
        noexcept(
1149
            noexcept(SCN_DECLVAL(expected_operations_base&)
1150
                         .reassign_unexpected(std::forward<Other>(other))) &&
1151
            noexcept(
1152
                SCN_DECLVAL(expected_operations_base&)
1153
                    .assign_unexpected_over_value(std::forward<Other>(other))))
1154
#else
1155
        noexcept(
1156
            noexcept(reassign_unexpected(std::forward<Other>(other))) &&
1157
            noexcept(assign_unexpected_over_value(std::forward<Other>(other))))
1158
#endif
1159
    {
1160
        if (this->has_value()) {
1161
            if (other.has_value()) {
1162
                return reassign_value();
1163
            }
1164
            return assign_unexpected_over_value(std::forward<Other>(other));
1165
        }
1166
1167
        if (other.has_value()) {
1168
            return assign_value_over_unexpected();
1169
        }
1170
        return reassign_unexpected(std::forward<Other>(other));
1171
    }
1172
1173
    void reassign_value() noexcept {}
1174
1175
    template <typename Other>
1176
    void reassign_unexpected(Other&& other) noexcept(
1177
        std::is_nothrow_assignable_v<
1178
            E,
1179
            decltype(std::forward<Other>(other).get_unexpected())>)
1180
    {
1181
        this->get_unexpected() = std::forward<Other>(other).get_unexpected();
1182
    }
1183
1184
    void assign_value_over_unexpected() noexcept
1185
    {
1186
        this->destroy_unexpected();
1187
        this->construct();
1188
    }
1189
1190
    template <typename Other>
1191
    void assign_unexpected_over_value(Other&& other) noexcept(
1192
        std::is_nothrow_constructible_v<
1193
            E,
1194
            decltype(std::forward<Other>(other).get_unexpected())>)
1195
    {
1196
        this->destroy_value();
1197
        this->construct_unexpected(std::forward<Other>(other).get_unexpected());
1198
    }
1199
};
1200
1201
/*
1202
 * Base class trickery to conditionally mark copy and move
1203
 * constructors of an expected as =deleted.
1204
 *
1205
 * We need to do this, because otherwise utilities like
1206
 * std::is_copy_constructible wouldn't work for expected: the
1207
 * constructors need to be explicitly =deleted, not just cause a
1208
 * compiler error when trying to copy a value of a non-copyable
1209
 * type.
1210
 *
1211
 * Rationale for doing this with base classes is above.
1212
 */
1213
template <
1214
    typename T,
1215
    typename E,
1216
    bool EnableCopy = ((std::is_copy_constructible_v<T> || std::is_void_v<T>) &&
1217
                       std::is_copy_constructible_v<E>),
1218
    bool EnableMove = ((std::is_move_constructible_v<T> || std::is_void_v<T>) &&
1219
                       std::is_move_constructible_v<E>)>
1220
struct expected_delete_ctor_base;
1221
1222
// Implementation for types that are both copy and move
1223
// constructible: Copy and move constructors are =defaulted
1224
template <typename T, typename E>
1225
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, true> {
1226
    expected_delete_ctor_base() = default;
1227
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1228
        default;
1229
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1230
    ~expected_delete_ctor_base() = default;
1231
1232
    expected_delete_ctor_base(const expected_delete_ctor_base&) = default;
1233
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1234
};
1235
1236
// Implementation for types that are neither copy nor move
1237
// constructible: Copy and move constructors are =deleted
1238
template <typename T, typename E>
1239
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, false> {
1240
    expected_delete_ctor_base() = default;
1241
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1242
        default;
1243
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1244
    ~expected_delete_ctor_base() = default;
1245
1246
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1247
    expected_delete_ctor_base(expected_delete_ctor_base&&) = delete;
1248
};
1249
1250
// Implementation for types that are move constructible, but not
1251
// copy constructible Copy constructor is =deleted, but move
1252
// constructor is =defaulted
1253
template <typename T, typename E>
1254
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, false, true> {
1255
    expected_delete_ctor_base() = default;
1256
    expected_delete_ctor_base& operator=(const expected_delete_ctor_base&) =
1257
        default;
1258
    expected_delete_ctor_base& operator=(expected_delete_ctor_base&&) = default;
1259
    ~expected_delete_ctor_base() = default;
1260
1261
    expected_delete_ctor_base(const expected_delete_ctor_base&) = delete;
1262
    expected_delete_ctor_base(expected_delete_ctor_base&&) = default;
1263
};
1264
1265
template <typename T, typename E>
1266
struct SCN_TRIVIAL_ABI expected_delete_ctor_base<T, E, true, false> {
1267
    static_assert(dependent_false<T>::value,
1268
                  "Nonsensical type: copy constructible, but not move "
1269
                  "constructible");
1270
};
1271
1272
// Same as above, but for assignment
1273
template <
1274
    typename T,
1275
    typename E,
1276
    bool EnableCopy = ((std::is_copy_constructible_v<T> || std::is_void_v<T>) &&
1277
                       std::is_copy_constructible_v<E> &&
1278
                       (std::is_copy_assignable_v<T> || std::is_void_v<T>) &&
1279
                       std::is_copy_assignable_v<E>),
1280
    bool EnableMove = ((std::is_move_constructible_v<T> || std::is_void_v<T>) &&
1281
                       std::is_move_constructible_v<E> &&
1282
                       (std::is_move_assignable_v<T> || std::is_void_v<T>) &&
1283
                       std::is_move_assignable_v<E>)>
1284
struct expected_delete_assign_base;
1285
1286
template <typename T, typename E>
1287
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, true> {
1288
    expected_delete_assign_base() = default;
1289
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1290
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1291
    ~expected_delete_assign_base() = default;
1292
1293
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1294
        default;
1295
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1296
        default;
1297
};
1298
1299
template <typename T, typename E>
1300
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, false> {
1301
    expected_delete_assign_base() = default;
1302
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1303
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1304
    ~expected_delete_assign_base() = default;
1305
1306
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1307
        delete;
1308
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1309
        delete;
1310
};
1311
1312
template <typename T, typename E>
1313
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, false, true> {
1314
    expected_delete_assign_base() = default;
1315
    expected_delete_assign_base(const expected_delete_assign_base&) = default;
1316
    expected_delete_assign_base(expected_delete_assign_base&&) = default;
1317
    ~expected_delete_assign_base() = default;
1318
1319
    expected_delete_assign_base& operator=(const expected_delete_assign_base&) =
1320
        delete;
1321
    expected_delete_assign_base& operator=(expected_delete_assign_base&&) =
1322
        default;
1323
};
1324
1325
template <typename T, typename E>
1326
struct SCN_TRIVIAL_ABI expected_delete_assign_base<T, E, true, false> {
1327
    static_assert(dependent_false<T>::value,
1328
                  "Nonsensical type: copy assignable, but not move "
1329
                  "assignable");
1330
};
1331
1332
struct non_default_ctor_tag_t {};
1333
1334
/*
1335
 * Same as above, but for the default constructor
1336
 *
1337
 * The constructor taking a non_default_ctor_tag_t is needed, to
1338
 * signal that we're not default constructing.
1339
 */
1340
template <typename T,
1341
          typename E,
1342
          bool = std::is_default_constructible_v<T> || std::is_void_v<T>>
1343
struct SCN_TRIVIAL_ABI expected_default_ctor_base {
1344
    constexpr expected_default_ctor_base() = default;
1345
    constexpr explicit expected_default_ctor_base(
1346
        non_default_ctor_tag_t) noexcept
1347
1.54M
    {
1348
1.54M
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
5.34k
    {
1348
5.34k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
50.5k
    {
1348
50.5k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
5.61k
    {
1348
5.61k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
5.61k
    {
1348
5.61k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
5.61k
    {
1348
5.61k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
5.61k
    {
1348
5.61k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
5.61k
    {
1348
5.61k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
4.96k
    {
1348
4.96k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
4.96k
    {
1348
4.96k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
4.96k
    {
1348
4.96k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
10.9k
    {
1348
10.9k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
101k
    {
1348
101k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
11.1k
    {
1348
11.1k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
11.1k
    {
1348
11.1k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
11.1k
    {
1348
11.1k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
11.1k
    {
1348
11.1k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
11.2k
    {
1348
11.2k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
10.6k
    {
1348
10.6k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
10.6k
    {
1348
10.6k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
10.6k
    {
1348
10.6k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<long, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
166k
    {
1348
166k
    }
scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
56.2k
    {
1348
56.2k
    }
scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
213k
    {
1348
213k
    }
scn::v4::detail::expected_default_ctor_base<void, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
310k
    {
1348
310k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
51.3k
    {
1348
51.3k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
10.9k
    {
1348
10.9k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
5.10k
    {
1348
5.10k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
10.0k
    {
1348
10.0k
    }
scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
9.25k
    {
1348
9.25k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
8.57k
    {
1348
8.57k
    }
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
1.39k
    {
1348
1.39k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
1.03k
    {
1348
1.03k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
1.03k
    {
1348
1.03k
    }
scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
24
    {
1348
24
    }
scn::v4::detail::expected_default_ctor_base<char const*, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
14.4k
    {
1348
14.4k
    }
scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
3.70k
    {
1348
3.70k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
2.77k
    {
1348
2.77k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
2.77k
    {
1348
2.77k
    }
scn::v4::detail::expected_default_ctor_base<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
20
    {
1348
20
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
358
    {
1348
358
    }
scn::v4::detail::expected_default_ctor_base<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
928
    {
1348
928
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
142k
    {
1348
142k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
3.10k
    {
1348
3.10k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
2.47k
    {
1348
2.47k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
5.04k
    {
1348
5.04k
    }
scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
6.72k
    {
1348
6.72k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
4.79k
    {
1348
4.79k
    }
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
786
    {
1348
786
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
596
    {
1348
596
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
596
    {
1348
596
    }
scn::v4::detail::expected_default_ctor_base<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
52
    {
1348
52
    }
scn::v4::detail::expected_default_ctor_base<wchar_t const*, scn::v4::impl::parse_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
124k
    {
1348
124k
    }
scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
26.1k
    {
1348
26.1k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
19.5k
    {
1348
19.5k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
19.5k
    {
1348
19.5k
    }
scn::v4::detail::expected_default_ctor_base<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
48
    {
1348
48
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
190
    {
1348
190
    }
scn::v4::detail::expected_default_ctor_base<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
6.54k
    {
1348
6.54k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<wchar_t, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
3.50k
    {
1348
3.50k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
2.18k
    {
1348
2.18k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
1.21k
    {
1348
1.21k
    }
scn::v4::detail::expected_default_ctor_base<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Line
Count
Source
1347
1.21k
    {
1348
1.21k
    }
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
Unexecuted instantiation: scn::v4::detail::expected_default_ctor_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error, true>::expected_default_ctor_base(scn::v4::detail::non_default_ctor_tag_t)
1349
};
1350
template <typename T, typename E>
1351
struct SCN_TRIVIAL_ABI expected_default_ctor_base<T, E, false> {
1352
    constexpr expected_default_ctor_base() = delete;
1353
    constexpr explicit expected_default_ctor_base(
1354
        non_default_ctor_tag_t) noexcept
1355
    {
1356
    }
1357
};
1358
1359
template <typename T>
1360
using remove_cvref_t = std::remove_cv_t<std::remove_reference_t<T>>;
1361
1362
template <typename T>
1363
struct is_expected_impl : std::false_type {};
1364
template <typename T, typename E>
1365
struct is_expected_impl<expected<T, E>> : std::true_type {};
1366
template <typename T>
1367
using is_expected = is_expected_impl<remove_cvref_t<T>>;
1368
1369
template <typename Exp>
1370
using is_exp_void = std::is_void<typename remove_cvref_t<Exp>::value_type>;
1371
1372
template <typename Exp>
1373
using expected_value_type = typename remove_cvref_t<Exp>::value_type;
1374
1375
template <
1376
    typename F,
1377
    typename... Args,
1378
    typename = std::void_t<decltype(SCN_DECLVAL(F&&)(SCN_DECLVAL(Args&&)...))>>
1379
constexpr decltype(auto) trivial_invoke(F&& f, Args&&... args) noexcept(
1380
    noexcept(std::forward<F>(f)(std::forward<Args>(args)...)))
1381
11.5k
{
1382
11.5k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1383
11.5k
}
decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&&)
Line
Count
Source
1381
354
{
1382
354
    return std::forward<F>(f)(std::forward<Args>(args)...);
1383
354
}
decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&&)
Line
Count
Source
1381
1.08k
{
1382
1.08k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1383
1.08k
}
decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error&&)
Line
Count
Source
1381
1.50k
{
1382
1.50k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1383
1.50k
}
decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error&, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error&)
Line
Count
Source
1381
8.58k
{
1382
8.58k
    return std::forward<F>(f)(std::forward<Args>(args)...);
1383
8.58k
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&, void>(scn::v4::scan_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error const&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&, void>(scn::v4::impl::parse_error (&)(scn::v4::impl::eof_error), scn::v4::impl::eof_error&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::trivial_invoke<scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}, scn::v4::impl::parse_error const&, void>(scn::v4::impl::map_parse_error_to_scan_error(scn::v4::scan_error::code, char const*)::{lambda(scn::v4::impl::parse_error)#1}&&, scn::v4::impl::parse_error const&)
1384
1385
// and_then
1386
1387
template <typename Exp,
1388
          typename F,
1389
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1390
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1391
                                                 *SCN_DECLVAL(Exp)))>
1392
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1393
    noexcept(trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))) &&
1394
    std::is_nothrow_constructible_v<Ret,
1395
                                    unexpect_t,
1396
                                    decltype(std::forward<Exp>(exp).error())>)
1397
{
1398
    static_assert(is_expected<Ret>::value, "F must return an expected");
1399
1400
    return SCN_LIKELY(exp.has_value())
1401
               ? trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp))
1402
               : Ret(unexpect, std::forward<Exp>(exp).error());
1403
}
1404
template <typename Exp,
1405
          typename F,
1406
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1407
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1408
constexpr auto and_then_impl(Exp&& exp, F&& f) noexcept(
1409
    noexcept(trivial_invoke(std::forward<F>(f))) &&
1410
    std::is_nothrow_constructible_v<Ret,
1411
                                    unexpect_t,
1412
                                    decltype(std::forward<Exp>(exp).error())>)
1413
{
1414
    static_assert(is_expected<Ret>::value, "F must return an expected");
1415
1416
    return SCN_LIKELY(exp.has_value())
1417
               ? trivial_invoke(std::forward<F>(f))
1418
               : Ret(unexpect, std::forward<Exp>(exp).error());
1419
}
1420
1421
// or_else
1422
1423
template <typename Exp,
1424
          typename F,
1425
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1426
                                                 SCN_DECLVAL(Exp).error()))>
1427
constexpr auto or_else_impl(Exp&& exp, F&& f) noexcept(
1428
    noexcept(trivial_invoke(std::forward<F>(f),
1429
                            std::forward<Exp>(exp).error())) &&
1430
    std::is_nothrow_constructible_v<Ret, decltype(std::forward<Exp>(exp))>)
1431
{
1432
    static_assert(is_expected<Ret>::value, "F must return an expected");
1433
1434
    return SCN_LIKELY(exp.has_value())
1435
               ? Ret(std::forward<Exp>(exp))
1436
               : trivial_invoke(std::forward<F>(f),
1437
                                std::forward<Exp>(exp).error());
1438
}
1439
1440
// transform
1441
1442
template <typename Exp,
1443
          typename F,
1444
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1445
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1446
                                                 *SCN_DECLVAL(Exp)))>
1447
constexpr auto transform_impl(Exp&& exp, F&& f)
1448
{
1449
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1450
    if constexpr (std::is_void_v<Ret>) {
1451
        if (SCN_LIKELY(exp.has_value())) {
1452
            trivial_invoke(std::forward<F>(f), *std::forward<Exp>(exp));
1453
            return result();
1454
        }
1455
        return result(unexpect, std::forward<Exp>(exp).error());
1456
    }
1457
    else {
1458
        return SCN_LIKELY(exp.has_value())
1459
                   ? result(trivial_invoke(std::forward<F>(f),
1460
                                           *std::forward<Exp>(exp)))
1461
                   : result(unexpect, std::forward<Exp>(exp).error());
1462
    }
1463
}
1464
template <typename Exp,
1465
          typename F,
1466
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1467
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F)))>
1468
constexpr auto transform_impl(Exp&& exp, F&& f)
1469
{
1470
    using result = typename remove_cvref_t<Exp>::template rebind<Ret>;
1471
    if constexpr (std::is_void_v<Ret>) {
1472
        if (SCN_LIKELY(exp.has_value())) {
1473
            trivial_invoke(std::forward<F>(f));
1474
            return result();
1475
        }
1476
        return result(unexpect, std::forward<Exp>(exp).error());
1477
    }
1478
    else {
1479
        return SCN_LIKELY(exp.has_value())
1480
                   ? result(trivial_invoke(std::forward<F>(f)))
1481
                   : result(unexpect, std::forward<Exp>(exp).error());
1482
    }
1483
}
1484
1485
// transform_error
1486
1487
template <typename Exp,
1488
          typename F,
1489
          std::enable_if_t<!is_exp_void<Exp>::value>* = nullptr,
1490
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1491
                                                 SCN_DECLVAL(Exp).error()))>
1492
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1493
164k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
164k
    else {
1504
164k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
164k
        return SCN_LIKELY(exp.has_value())
1506
164k
                   ? result(*std::forward<Exp>(exp))
1507
164k
                   : result(unexpect,
1508
11.5k
                            trivial_invoke(std::forward<F>(f),
1509
11.5k
                                           std::forward<Exp>(exp).error()));
1510
164k
    }
1511
164k
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1493
8.47k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
8.47k
    else {
1504
8.47k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
8.47k
        return SCN_LIKELY(exp.has_value())
1506
8.47k
                   ? result(*std::forward<Exp>(exp))
1507
8.47k
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
8.47k
    }
1511
8.47k
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSQ_OT0_
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Line
Count
Source
1493
900
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
900
    else {
1504
900
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
900
        return SCN_LIKELY(exp.has_value())
1506
900
                   ? result(*std::forward<Exp>(exp))
1507
900
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
900
    }
1511
900
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Line
Count
Source
1493
2.33k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
2.33k
    else {
1504
2.33k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
2.33k
        return SCN_LIKELY(exp.has_value())
1506
2.33k
                   ? result(*std::forward<Exp>(exp))
1507
2.33k
                   : result(unexpect,
1508
446
                            trivial_invoke(std::forward<F>(f),
1509
446
                                           std::forward<Exp>(exp).error()));
1510
2.33k
    }
1511
2.33k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Line
Count
Source
1493
1.03k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
1.03k
    else {
1504
1.03k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
1.03k
        return SCN_LIKELY(exp.has_value())
1506
1.03k
                   ? result(*std::forward<Exp>(exp))
1507
1.03k
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
1.03k
    }
1511
1.03k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Line
Count
Source
1493
1.01k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
1.01k
    else {
1504
1.01k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
1.01k
        return SCN_LIKELY(exp.has_value())
1506
1.01k
                   ? result(*std::forward<Exp>(exp))
1507
1.01k
                   : result(unexpect,
1508
1.01k
                            trivial_invoke(std::forward<F>(f),
1509
1.01k
                                           std::forward<Exp>(exp).error()));
1510
1.01k
    }
1511
1.01k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Line
Count
Source
1493
2.77k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
2.77k
    else {
1504
2.77k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
2.77k
        return SCN_LIKELY(exp.has_value())
1506
2.77k
                   ? result(*std::forward<Exp>(exp))
1507
2.77k
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
2.77k
    }
1511
2.77k
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
_ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Line
Count
Source
1493
358
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
358
    else {
1504
358
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
358
        return SCN_LIKELY(exp.has_value())
1506
358
                   ? result(*std::forward<Exp>(exp))
1507
358
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
358
    }
1511
358
}
_ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Line
Count
Source
1493
716
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
716
    else {
1504
716
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
716
        return SCN_LIKELY(exp.has_value())
1506
716
                   ? result(*std::forward<Exp>(exp))
1507
716
                   : result(unexpect,
1508
716
                            trivial_invoke(std::forward<F>(f),
1509
716
                                           std::forward<Exp>(exp).error()));
1510
716
    }
1511
716
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSH_OT0_
Line
Count
Source
1493
928
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
928
    else {
1504
928
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
928
        return SCN_LIKELY(exp.has_value())
1506
928
                   ? result(*std::forward<Exp>(exp))
1507
928
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
928
    }
1511
928
}
_ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeES5_EUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Line
Count
Source
1493
950
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
950
    else {
1504
950
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
950
        return SCN_LIKELY(exp.has_value())
1506
950
                   ? result(*std::forward<Exp>(exp))
1507
950
                   : result(unexpect,
1508
950
                            trivial_invoke(std::forward<F>(f),
1509
950
                                           std::forward<Exp>(exp).error()));
1510
950
    }
1511
950
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSQ_OT0_
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Line
Count
Source
1493
566
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
566
    else {
1504
566
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
566
        return SCN_LIKELY(exp.has_value())
1506
566
                   ? result(*std::forward<Exp>(exp))
1507
566
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
566
    }
1511
566
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1493
64.3k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
64.3k
    else {
1504
64.3k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
64.3k
        return SCN_LIKELY(exp.has_value())
1506
64.3k
                   ? result(*std::forward<Exp>(exp))
1507
64.3k
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
64.3k
    }
1511
64.3k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Line
Count
Source
1493
1.26k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
1.26k
    else {
1504
1.26k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
1.26k
        return SCN_LIKELY(exp.has_value())
1506
1.26k
                   ? result(*std::forward<Exp>(exp))
1507
1.26k
                   : result(unexpect,
1508
338
                            trivial_invoke(std::forward<F>(f),
1509
338
                                           std::forward<Exp>(exp).error()));
1510
1.26k
    }
1511
1.26k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Line
Count
Source
1493
596
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
596
    else {
1504
596
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
596
        return SCN_LIKELY(exp.has_value())
1506
596
                   ? result(*std::forward<Exp>(exp))
1507
596
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
596
    }
1511
596
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Line
Count
Source
1493
526
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
526
    else {
1504
526
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
526
        return SCN_LIKELY(exp.has_value())
1506
526
                   ? result(*std::forward<Exp>(exp))
1507
526
                   : result(unexpect,
1508
488
                            trivial_invoke(std::forward<F>(f),
1509
488
                                           std::forward<Exp>(exp).error()));
1510
526
    }
1511
526
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1493
39.2k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
39.2k
    else {
1504
39.2k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
39.2k
        return SCN_LIKELY(exp.has_value())
1506
39.2k
                   ? result(*std::forward<Exp>(exp))
1507
39.2k
                   : result(unexpect,
1508
196
                            trivial_invoke(std::forward<F>(f),
1509
196
                                           std::forward<Exp>(exp).error()));
1510
39.2k
    }
1511
39.2k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Line
Count
Source
1493
19.5k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
19.5k
    else {
1504
19.5k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
19.5k
        return SCN_LIKELY(exp.has_value())
1506
19.5k
                   ? result(*std::forward<Exp>(exp))
1507
19.5k
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
19.5k
    }
1511
19.5k
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
_ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Line
Count
Source
1493
190
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
190
    else {
1504
190
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
190
        return SCN_LIKELY(exp.has_value())
1506
190
                   ? result(*std::forward<Exp>(exp))
1507
190
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
190
    }
1511
190
}
_ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSK_OT0_
Line
Count
Source
1493
358
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
358
    else {
1504
358
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
358
        return SCN_LIKELY(exp.has_value())
1506
358
                   ? result(*std::forward<Exp>(exp))
1507
358
                   : result(unexpect,
1508
358
                            trivial_invoke(std::forward<F>(f),
1509
358
                                           std::forward<Exp>(exp).error()));
1510
358
    }
1511
358
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSH_OT0_
Line
Count
Source
1493
6.54k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
6.54k
    else {
1504
6.54k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
6.54k
        return SCN_LIKELY(exp.has_value())
1506
6.54k
                   ? result(*std::forward<Exp>(exp))
1507
6.54k
                   : result(unexpect,
1508
0
                            trivial_invoke(std::forward<F>(f),
1509
0
                                           std::forward<Exp>(exp).error()));
1510
6.54k
    }
1511
6.54k
}
_ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSH_OT0_
Line
Count
Source
1493
6.55k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
6.55k
    else {
1504
6.55k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
6.55k
        return SCN_LIKELY(exp.has_value())
1506
6.55k
                   ? result(*std::forward<Exp>(exp))
1507
6.55k
                   : result(unexpect,
1508
6.55k
                            trivial_invoke(std::forward<F>(f),
1509
6.55k
                                           std::forward<Exp>(exp).error()));
1510
6.55k
    }
1511
6.55k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ES9_EEDaOSE_OT0_
Line
Count
Source
1493
2.06k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
2.06k
    else {
1504
2.06k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
2.06k
        return SCN_LIKELY(exp.has_value())
1506
2.06k
                   ? result(*std::forward<Exp>(exp))
1507
2.06k
                   : result(unexpect,
1508
102
                            trivial_invoke(std::forward<F>(f),
1509
102
                                           std::forward<Exp>(exp).error()));
1510
2.06k
    }
1511
2.06k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSR_OT0_
Line
Count
Source
1493
2.18k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
2.18k
    else {
1504
2.18k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
2.18k
        return SCN_LIKELY(exp.has_value())
1506
2.18k
                   ? result(*std::forward<Exp>(exp))
1507
2.18k
                   : result(unexpect,
1508
238
                            trivial_invoke(std::forward<F>(f),
1509
238
                                           std::forward<Exp>(exp).error()));
1510
2.18k
    }
1511
2.18k
}
_ZN3scn2v46detail20transform_error_implINS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESM_EEDaOSR_OT0_
Line
Count
Source
1493
1.21k
{
1494
    if constexpr (std::is_void_v<Ret>) {
1495
        using result = expected<expected_value_type<Exp>, monostate>;
1496
        if (SCN_LIKELY(exp.has_value())) {
1497
            return result(*std::forward<Exp>(exp));
1498
        }
1499
1500
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1501
        return result(unexpect, monostate{});
1502
    }
1503
1.21k
    else {
1504
1.21k
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1505
1.21k
        return SCN_LIKELY(exp.has_value())
1506
1.21k
                   ? result(*std::forward<Exp>(exp))
1507
1.21k
                   : result(unexpect,
1508
116
                            trivial_invoke(std::forward<F>(f),
1509
116
                                           std::forward<Exp>(exp).error()));
1510
1.21k
    }
1511
1.21k
}
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS0_10scan_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESQ_EEDaOSV_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESP_EEDaOSU_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIcE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINSt3__117basic_string_viewIcNSB_11char_traitsIcEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES8_EUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESL_EEDaOSP_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESK_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeES5_EUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESQ_EEDaOSV_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_INS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_15take_width_viewINSA_6detail9subrange_8subrangeIS9_SB_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESM_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESP_EEDaOSU_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS0_10scan_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESJ_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS4_9eof_errorEEERFNS0_10scan_errorESF_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSN_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9eof_errorEEERFNS4_11parse_errorESD_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSD_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS1_17basic_scan_bufferIwE16forward_iteratorEEENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEERFNS7_11parse_errorES8_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEEZNS7_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINSt3__117basic_string_viewIwNSB_11char_traitsIwEEEEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSB_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSR_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS0_10scan_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS0_10scan_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultINS4_27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EEEENS4_9eof_errorEEERFNS0_10scan_errorESC_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9eof_errorEEERFNS4_11parse_errorESA_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_11parse_errorEEEZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSA_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESD_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS4_9eof_errorEEERFNS0_10scan_errorES9_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESC_EEDaOSH_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKwNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESL_EEDaOSP_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS1_17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESH_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESK_EEDaOSO_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESG_EEDaOSK_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS1_17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS9_9eof_errorEEERFNS0_10scan_errorESC_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESI_EEDaOSM_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSA_EENS6_9sign_typeEEENS6_9eof_errorEEERFNS0_10scan_errorESE_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESH_EEDaOSL_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESF_EEDaOSJ_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS8_9eof_errorEEERFNS0_10scan_errorESB_ETnPNS4_9enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESE_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKwNS0_4impl11parse_errorEEEZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_TnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSI_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESB_EEDaOSG_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedIPKcNS0_4impl9eof_errorEEERFNS6_11parse_errorES7_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESA_EEDaOSF_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKcS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSS_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRKNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESO_EEDaOST_OT0_
Unexecuted instantiation: _ZN3scn2v46detail20transform_error_implIRNS0_8expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS6_IPKwS8_EENS4_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS8_S8_EEE8sentinelILb1EEEEENS4_9eof_errorEEERFNS0_10scan_errorESK_ETnPNSt3__19enable_ifIXntsr11is_exp_voidIT_EE5valueEvE4typeELPv0ESN_EEDaOSS_OT0_
1512
template <typename Exp,
1513
          typename F,
1514
          std::enable_if_t<is_exp_void<Exp>::value>* = nullptr,
1515
          typename Ret = decltype(trivial_invoke(SCN_DECLVAL(F),
1516
                                                 SCN_DECLVAL(Exp).error()))>
1517
constexpr auto transform_error_impl(Exp&& exp, F&& f)
1518
{
1519
    if constexpr (std::is_void_v<Ret>) {
1520
        using result = expected<expected_value_type<Exp>, monostate>;
1521
        if (SCN_LIKELY(exp.has_value())) {
1522
            return result();
1523
        }
1524
1525
        trivial_invoke(std::forward<F>(f), std::forward<Exp>(exp).error());
1526
        return result(unexpect, monostate{});
1527
    }
1528
    else {
1529
        using result = expected<expected_value_type<Exp>, remove_cvref_t<Ret>>;
1530
        return SCN_LIKELY(exp.has_value())
1531
                   ? result()
1532
                   : result(unexpect,
1533
                            trivial_invoke(std::forward<F>(f),
1534
                                           std::forward<Exp>(exp).error()));
1535
    }
1536
}
1537
1538
template <class T, class E, class U, class G, class UR, class GR>
1539
using enable_from_other =
1540
    std::enable_if_t<std::is_constructible_v<T, UR> &&
1541
                     std::is_constructible_v<E, GR> &&
1542
                     !std::is_constructible_v<T, expected<U, G>&> &&
1543
                     !std::is_constructible_v<T, expected<U, G>&&> &&
1544
                     !std::is_constructible_v<T, const expected<U, G>&> &&
1545
                     !std::is_constructible_v<T, const expected<U, G>&&> &&
1546
                     !std::is_convertible_v<expected<U, G>&, T> &&
1547
                     !std::is_convertible_v<expected<U, G>&&, T> &&
1548
                     !std::is_convertible_v<const expected<U, G>&, T> &&
1549
                     !std::is_convertible_v<const expected<U, G>&&, T>>;
1550
}  // namespace detail
1551
1552
/**
1553
 * \see `std::expected`
1554
 */
1555
template <typename T, typename E>
1556
class SCN_TRIVIAL_ABI expected
1557
    : private detail::expected_operations_base<T, E>,
1558
      private detail::expected_delete_ctor_base<T, E>,
1559
      private detail::expected_delete_assign_base<T, E>,
1560
      private detail::expected_default_ctor_base<T, E> {
1561
    using base = detail::expected_operations_base<T, E>;
1562
    using ctor_base = detail::expected_default_ctor_base<T, E>;
1563
1564
    static_assert(std::is_void_v<T> || std::is_destructible_v<T>,
1565
                  "T must be void or Destructible");
1566
    static_assert(std::is_destructible_v<E>, "E must be Destructible");
1567
1568
    static_assert(!std::is_same_v<std::remove_cv_t<T>, std::in_place_t>);
1569
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpect_t>);
1570
    static_assert(!std::is_same_v<std::remove_cv_t<T>, unexpected<E>>);
1571
1572
public:
1573
    using value_type = T;
1574
    using error_type = E;
1575
    using unexpected_type = unexpected<E>;
1576
1577
    template <typename U>
1578
    using rebind = expected<U, error_type>;
1579
1580
    // Special member functions are defaulted, implementations provided
1581
    // by base classes
1582
1583
544k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
5.61k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
5.61k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
5.61k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
5.61k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
5.61k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
5.61k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1583
5.61k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1583
5.61k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1583
5.61k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
11.2k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
11.2k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
11.2k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
11.2k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
11.2k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error>::expected()
Line
Count
Source
1583
11.2k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1583
11.2k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1583
11.2k
    constexpr expected() = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::expected()
Line
Count
Source
1583
11.2k
    constexpr expected() = default;
scn::v4::expected<void, scn::v4::scan_error>::expected()
Line
Count
Source
1583
392k
    constexpr expected() = default;
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::expected()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected()
1584
1585
    constexpr expected(const expected&) = default;
1586
    constexpr expected(expected&&) = default;
1587
    constexpr expected& operator=(const expected&) = default;
1588
147k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error>&&)
Line
Count
Source
1588
5.34k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error>&&)
Line
Count
Source
1588
5.61k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error>&&)
Line
Count
Source
1588
5.61k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error>&&)
Line
Count
Source
1588
5.61k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error>&&)
Line
Count
Source
1588
5.61k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error>&&)
Line
Count
Source
1588
5.61k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1588
4.96k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1588
4.96k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1588
4.96k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error>&&)
Line
Count
Source
1588
10.9k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error>&&)
Line
Count
Source
1588
11.1k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error>&&)
Line
Count
Source
1588
11.1k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error>&&)
Line
Count
Source
1588
11.1k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error>&&)
Line
Count
Source
1588
11.1k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error>&&)
Line
Count
Source
1588
11.2k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Line
Count
Source
1588
10.6k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1588
10.6k
    constexpr expected& operator=(expected&&) = default;
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>&&)
Line
Count
Source
1588
10.6k
    constexpr expected& operator=(expected&&) = default;
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator=(scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>&&)
1589
1590
    ~expected() = default;
1591
1592
    /**
1593
     * Construct an expected value.
1594
     * Intentionally non-explicit, to make constructing an expected
1595
     * value as transparent as possible.
1596
     */
1597
    template <typename U = value_type,
1598
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1599
    SCN_IMPLICIT constexpr expected(U&& val) noexcept(
1600
        std::is_nothrow_constructible_v<base, std::in_place_t, U&&>)
1601
533k
        : base(std::in_place, std::forward<U>(val)),
1602
533k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
533k
    {
1604
533k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
1601
2.23k
        : base(std::in_place, std::forward<U>(val)),
1602
2.23k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
2.23k
    {
1604
2.23k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1601
2.07k
        : base(std::in_place, std::forward<U>(val)),
1602
2.07k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
2.07k
    {
1604
2.07k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1601
21.5k
        : base(std::in_place, std::forward<U>(val)),
1602
21.5k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
21.5k
    {
1604
21.5k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1601
125k
        : base(std::in_place, std::forward<U>(val)),
1602
125k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
125k
    {
1604
125k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<char const*, scn::v4::impl::eof_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1601
50.7k
        : base(std::in_place, std::forward<U>(val)),
1602
50.7k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
50.7k
    {
1604
50.7k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1601
10.4k
        : base(std::in_place, std::forward<U>(val)),
1602
10.4k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
10.4k
    {
1604
10.4k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >&&)
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>&&)
Line
Count
Source
1601
4.86k
        : base(std::in_place, std::forward<U>(val)),
1602
4.86k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
4.86k
    {
1604
4.86k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1601
2.67k
        : base(std::in_place, std::forward<U>(val)),
1602
2.67k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
2.67k
    {
1604
2.67k
    }
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::expected<std::__1::pair<char const*, long>, void>(std::__1::pair<char const*, long>&&)
Line
Count
Source
1601
9.25k
        : base(std::in_place, std::forward<U>(val)),
1602
9.25k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
9.25k
    {
1604
9.25k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Line
Count
Source
1601
1.39k
        : base(std::in_place, std::forward<U>(val)),
1602
1.39k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.39k
    {
1604
1.39k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&&)
Line
Count
Source
1601
1.88k
        : base(std::in_place, std::forward<U>(val)),
1602
1.88k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.88k
    {
1604
1.88k
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
1601
1.03k
        : base(std::in_place, std::forward<U>(val)),
1602
1.03k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.03k
    {
1604
1.03k
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&&)
Line
Count
Source
1601
1.03k
        : base(std::in_place, std::forward<U>(val)),
1602
1.03k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.03k
    {
1604
1.03k
    }
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<char const*&, void>(char const*&)
scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Line
Count
Source
1601
3.70k
        : base(std::in_place, std::forward<U>(val)),
1602
3.70k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
3.70k
    {
1604
3.70k
    }
scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<char const*, void>(char const*&&)
Line
Count
Source
1601
1.96k
        : base(std::in_place, std::forward<U>(val)),
1602
1.96k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.96k
    {
1604
1.96k
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
1601
2.77k
        : base(std::in_place, std::forward<U>(val)),
1602
2.77k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
2.77k
    {
1604
2.77k
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, void>(scn::v4::impl::parse_integer_prefix_result<char const*>&&)
Line
Count
Source
1601
2.77k
        : base(std::in_place, std::forward<U>(val)),
1602
2.77k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
2.77k
    {
1604
2.77k
    }
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<long, scn::v4::scan_error>::expected<long, void>(long&&)
Line
Count
Source
1601
4.48k
        : base(std::in_place, std::forward<U>(val)),
1602
4.48k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
4.48k
    {
1604
4.48k
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>&&)
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>&&)
Line
Count
Source
1601
358
        : base(std::in_place, std::forward<U>(val)),
1602
358
          ctor_base(detail::non_default_ctor_tag_t{})
1603
358
    {
1604
358
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>&)
scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, void>(std::__1::pair<char const*, scn::v4::impl::sign_type>&&)
Line
Count
Source
1601
928
        : base(std::in_place, std::forward<U>(val)),
1602
928
          ctor_base(detail::non_default_ctor_tag_t{})
1603
928
    {
1604
928
    }
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const*&, void>(char const*&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, void>(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> const&)
Line
Count
Source
1601
816
        : base(std::in_place, std::forward<U>(val)),
1602
816
          ctor_base(detail::non_default_ctor_tag_t{})
1603
816
    {
1604
816
    }
scn::v4::expected<char const*, scn::v4::scan_error>::expected<char const* const&, void>(char const* const&)
Line
Count
Source
1601
1.44k
        : base(std::in_place, std::forward<U>(val)),
1602
1.44k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.44k
    {
1604
1.44k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>&&)
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1601
142k
        : base(std::in_place, std::forward<U>(val)),
1602
142k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
142k
    {
1604
142k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1601
2.75k
        : base(std::in_place, std::forward<U>(val)),
1602
2.75k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
2.75k
    {
1604
2.75k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >&&)
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>&&)
Line
Count
Source
1601
2.36k
        : base(std::in_place, std::forward<U>(val)),
1602
2.36k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
2.36k
    {
1604
2.36k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1601
1.74k
        : base(std::in_place, std::forward<U>(val)),
1602
1.74k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.74k
    {
1604
1.74k
    }
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::expected<std::__1::pair<wchar_t const*, long>, void>(std::__1::pair<wchar_t const*, long>&&)
Line
Count
Source
1601
6.72k
        : base(std::in_place, std::forward<U>(val)),
1602
6.72k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
6.72k
    {
1604
6.72k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Line
Count
Source
1601
58
        : base(std::in_place, std::forward<U>(val)),
1602
58
          ctor_base(detail::non_default_ctor_tag_t{})
1603
58
    {
1604
58
    }
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Line
Count
Source
1601
786
        : base(std::in_place, std::forward<U>(val)),
1602
786
          ctor_base(detail::non_default_ctor_tag_t{})
1603
786
    {
1604
786
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
1601
982
        : base(std::in_place, std::forward<U>(val)),
1602
982
          ctor_base(detail::non_default_ctor_tag_t{})
1603
982
    {
1604
982
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Line
Count
Source
1601
596
        : base(std::in_place, std::forward<U>(val)),
1602
596
          ctor_base(detail::non_default_ctor_tag_t{})
1603
596
    {
1604
596
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>(scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&&)
Line
Count
Source
1601
596
        : base(std::in_place, std::forward<U>(val)),
1602
596
          ctor_base(detail::non_default_ctor_tag_t{})
1603
596
    {
1604
596
    }
scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1601
8
        : base(std::in_place, std::forward<U>(val)),
1602
8
          ctor_base(detail::non_default_ctor_tag_t{})
1603
8
    {
1604
8
    }
scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Line
Count
Source
1601
82
        : base(std::in_place, std::forward<U>(val)),
1602
82
          ctor_base(detail::non_default_ctor_tag_t{})
1603
82
    {
1604
82
    }
scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Line
Count
Source
1601
26.1k
        : base(std::in_place, std::forward<U>(val)),
1602
26.1k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
26.1k
    {
1604
26.1k
    }
scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<wchar_t const*, void>(wchar_t const*&&)
Line
Count
Source
1601
39.0k
        : base(std::in_place, std::forward<U>(val)),
1602
39.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
39.0k
    {
1604
39.0k
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
1601
19.5k
        : base(std::in_place, std::forward<U>(val)),
1602
19.5k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
19.5k
    {
1604
19.5k
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, void>(scn::v4::impl::parse_integer_prefix_result<wchar_t const*>&&)
Line
Count
Source
1601
19.5k
        : base(std::in_place, std::forward<U>(val)),
1602
19.5k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
19.5k
    {
1604
19.5k
    }
scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void>(std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Line
Count
Source
1601
8
        : base(std::in_place, std::forward<U>(val)),
1602
8
          ctor_base(detail::non_default_ctor_tag_t{})
1603
8
    {
1604
8
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>&&)
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, void>(std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>&&)
Line
Count
Source
1601
190
        : base(std::in_place, std::forward<U>(val)),
1602
190
          ctor_base(detail::non_default_ctor_tag_t{})
1603
190
    {
1604
190
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>&)
Line
Count
Source
1601
44
        : base(std::in_place, std::forward<U>(val)),
1602
44
          ctor_base(detail::non_default_ctor_tag_t{})
1603
44
    {
1604
44
    }
scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, void>(std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>&&)
Line
Count
Source
1601
6.54k
        : base(std::in_place, std::forward<U>(val)),
1602
6.54k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
6.54k
    {
1604
6.54k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const*&, void>(wchar_t const*&)
Line
Count
Source
1601
100
        : base(std::in_place, std::forward<U>(val)),
1602
100
          ctor_base(detail::non_default_ctor_tag_t{})
1603
100
    {
1604
100
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, void>(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> const&)
Line
Count
Source
1601
486
        : base(std::in_place, std::forward<U>(val)),
1602
486
          ctor_base(detail::non_default_ctor_tag_t{})
1603
486
    {
1604
486
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<wchar_t const* const&, void>(wchar_t const* const&)
Line
Count
Source
1601
522
        : base(std::in_place, std::forward<U>(val)),
1602
522
          ctor_base(detail::non_default_ctor_tag_t{})
1603
522
    {
1604
522
    }
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::expected<wchar_t, void>(wchar_t&&)
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Line
Count
Source
1601
3.11k
        : base(std::in_place, std::forward<U>(val)),
1602
3.11k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
3.11k
    {
1604
3.11k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&&)
Line
Count
Source
1601
1.95k
        : base(std::in_place, std::forward<U>(val)),
1602
1.95k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.95k
    {
1604
1.95k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Line
Count
Source
1601
1.10k
        : base(std::in_place, std::forward<U>(val)),
1602
1.10k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.10k
    {
1604
1.10k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>(scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&&)
Line
Count
Source
1601
1.10k
        : base(std::in_place, std::forward<U>(val)),
1602
1.10k
          ctor_base(detail::non_default_ctor_tag_t{})
1603
1.10k
    {
1604
1.10k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, void>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
1605
1606
    /// Construct an expected value directly in-place
1607
    template <typename... Args,
1608
              typename = std::enable_if_t<std::is_constructible_v<T, Args...>>>
1609
    explicit constexpr expected(std::in_place_t, Args&&... args) noexcept(
1610
        std::is_nothrow_constructible_v<base, std::in_place_t, Args&&...>)
1611
        : base(std::in_place, std::forward<Args>(args)...),
1612
          ctor_base(detail::non_default_ctor_tag_t{})
1613
    {
1614
    }
1615
1616
    template <typename G = E,
1617
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1618
              std::enable_if_t<!std::is_convertible_v<const G&, E>>* = nullptr>
1619
    explicit constexpr expected(const unexpected<G>& e) noexcept(
1620
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1621
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1622
    {
1623
    }
1624
    template <typename G = E,
1625
              std::enable_if_t<std::is_constructible_v<E, const G&>>* = nullptr,
1626
              std::enable_if_t<std::is_convertible_v<const G&, E>>* = nullptr>
1627
    SCN_IMPLICIT constexpr expected(const unexpected<G>& e) noexcept(
1628
        std::is_nothrow_constructible_v<base, unexpect_t, const G&>)
1629
        : base(unexpect, e.error()), ctor_base(detail::non_default_ctor_tag_t{})
1630
    {
1631
    }
1632
1633
    template <typename G = E,
1634
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1635
              std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
1636
    explicit constexpr expected(unexpected<G>&& e) noexcept(
1637
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1638
        : base(unexpect, std::move(e.error())),
1639
          ctor_base(detail::non_default_ctor_tag_t{})
1640
    {
1641
    }
1642
    template <typename G = E,
1643
              std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
1644
              std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
1645
    SCN_IMPLICIT constexpr expected(unexpected<G>&& e) noexcept(
1646
        std::is_nothrow_constructible_v<base, unexpect_t, G&&>)
1647
996k
        : base(unexpect, std::move(e.error())),
1648
996k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
996k
    {
1650
996k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJcEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
5.34k
        : base(unexpect, std::move(e.error())),
1648
5.34k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
5.34k
    {
1650
5.34k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1647
48.3k
        : base(unexpect, std::move(e.error())),
1648
48.3k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
48.3k
    {
1650
48.3k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJiEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
5.61k
        : base(unexpect, std::move(e.error())),
1648
5.61k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
5.61k
    {
1650
5.61k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJjEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
5.61k
        : base(unexpect, std::move(e.error())),
1648
5.61k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
5.61k
    {
1650
5.61k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJdEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
5.61k
        : base(unexpect, std::move(e.error())),
1648
5.61k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
5.61k
    {
1650
5.61k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJbEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
5.61k
        : base(unexpect, std::move(e.error())),
1648
5.61k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
5.61k
    {
1650
5.61k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJPvEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELSA_0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSA_0EEEONS0_10unexpectedISH_EE
Line
Count
Source
1647
5.61k
        : base(unexpect, std::move(e.error())),
1648
5.61k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
5.61k
    {
1650
5.61k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1647
4.96k
        : base(unexpect, std::move(e.error())),
1648
4.96k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
4.96k
    {
1650
4.96k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1647
4.96k
        : base(unexpect, std::move(e.error())),
1648
4.96k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
4.96k
    {
1650
4.96k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEENS0_10scan_errorEEC2ISG_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Line
Count
Source
1647
4.96k
        : base(unexpect, std::move(e.error())),
1648
4.96k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
4.96k
    {
1650
4.96k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJwEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
10.9k
        : base(unexpect, std::move(e.error())),
1648
10.9k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
10.9k
    {
1650
10.9k
    }
_ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1647
99.0k
        : base(unexpect, std::move(e.error())),
1648
99.0k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
99.0k
    {
1650
99.0k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJiEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
11.1k
        : base(unexpect, std::move(e.error())),
1648
11.1k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
11.1k
    {
1650
11.1k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJjEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
11.1k
        : base(unexpect, std::move(e.error())),
1648
11.1k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
11.1k
    {
1650
11.1k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJdEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
11.1k
        : base(unexpect, std::move(e.error())),
1648
11.1k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
11.1k
    {
1650
11.1k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJbEEENS0_10scan_errorEEC2ISB_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SB_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Line
Count
Source
1647
11.1k
        : base(unexpect, std::move(e.error())),
1648
11.1k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
11.1k
    {
1650
11.1k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJPvEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELSA_0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSA_0EEEONS0_10unexpectedISH_EE
Line
Count
Source
1647
11.2k
        : base(unexpect, std::move(e.error())),
1648
11.2k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
11.2k
    {
1650
11.2k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1647
10.6k
        : base(unexpect, std::move(e.error())),
1648
10.6k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
10.6k
    {
1650
10.6k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEEC2ISI_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
Line
Count
Source
1647
10.6k
        : base(unexpect, std::move(e.error())),
1648
10.6k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
10.6k
    {
1650
10.6k
    }
_ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEENS0_10scan_errorEEC2ISG_TnPNSA_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Line
Count
Source
1647
10.6k
        : base(unexpect, std::move(e.error())),
1648
10.6k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
10.6k
    {
1650
10.6k
    }
_ZN3scn2v48expectedIlNS0_10scan_errorEEC2IS2_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS2_OT_EEvE4typeELPv0ETnPNS6_IXsr3stdE16is_convertible_vIS8_S2_EEvE4typeELSC_0EEEONS0_10unexpectedIS7_EE
Line
Count
Source
1647
162k
        : base(unexpect, std::move(e.error())),
1648
162k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
162k
    {
1650
162k
    }
_ZN3scn2v48expectedIPKcNS0_10scan_errorEEC2IS4_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS4_OT_EEvE4typeELPv0ETnPNS8_IXsr3stdE16is_convertible_vISA_S4_EEvE4typeELSE_0EEEONS0_10unexpectedIS9_EE
Line
Count
Source
1647
32.3k
        : base(unexpect, std::move(e.error())),
1648
32.3k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
32.3k
    {
1650
32.3k
    }
_ZN3scn2v48expectedIPKwNS0_10scan_errorEEC2IS4_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS4_OT_EEvE4typeELPv0ETnPNS8_IXsr3stdE16is_convertible_vISA_S4_EEvE4typeELSE_0EEEONS0_10unexpectedIS9_EE
Line
Count
Source
1647
80.3k
        : base(unexpect, std::move(e.error())),
1648
80.3k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
80.3k
    {
1650
80.3k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEC2IS6_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS6_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S6_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEC2IS6_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS6_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S6_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
_ZN3scn2v48expectedIvNS0_10scan_errorEEC2IS2_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS2_OT_EEvE4typeELPv0ETnPNS6_IXsr3stdE16is_convertible_vIS8_S2_EEvE4typeELSC_0EEEONS0_10unexpectedIS7_EE
Line
Count
Source
1647
310k
        : base(unexpect, std::move(e.error())),
1648
310k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
310k
    {
1650
310k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISL_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSP_IXsr3stdE16is_convertible_vISR_SL_EEvE4typeELSV_0EEEONS0_10unexpectedISQ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2INSC_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSH_IXsr3stdE16is_convertible_vISJ_SC_EEvE4typeELSN_0EEEONS0_10unexpectedISI_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEC2ISE_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISE_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SE_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEEC2ISL_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEC2INS7_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S7_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
_ZN3scn2v48expectedIPKcNS0_4impl9eof_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1647
552
        : base(unexpect, std::move(e.error())),
1648
552
          ctor_base(detail::non_default_ctor_tag_t{})
1649
552
    {
1650
552
    }
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1647
516
        : base(unexpect, std::move(e.error())),
1648
516
          ctor_base(detail::non_default_ctor_tag_t{})
1649
516
    {
1650
516
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNS9_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
_ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Line
Count
Source
1647
238
        : base(unexpect, std::move(e.error())),
1648
238
          ctor_base(detail::non_default_ctor_tag_t{})
1649
238
    {
1650
238
    }
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEEC2IS7_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S7_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1647
4.84k
        : base(unexpect, std::move(e.error())),
1648
4.84k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
4.84k
    {
1650
4.84k
    }
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1647
804
        : base(unexpect, std::move(e.error())),
1648
804
          ctor_base(detail::non_default_ctor_tag_t{})
1649
804
    {
1650
804
    }
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEC2INS8_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S8_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1647
5.43k
        : base(unexpect, std::move(e.error())),
1648
5.43k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
5.43k
    {
1650
5.43k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEC2ISC_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SC_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISA_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SA_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
_ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEEC2ISH_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISH_OT_EEvE4typeELPv0ETnPNSK_IXsr3stdE16is_convertible_vISM_SH_EEvE4typeELSQ_0EEEONS0_10unexpectedISL_EE
Line
Count
Source
1647
24
        : base(unexpect, std::move(e.error())),
1648
24
          ctor_base(detail::non_default_ctor_tag_t{})
1649
24
    {
1650
24
    }
_ZN3scn2v48expectedIPKcNS0_4impl11parse_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1647
1.03k
        : base(unexpect, std::move(e.error())),
1648
1.03k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
1.03k
    {
1650
1.03k
    }
_ZN3scn2v48expectedIPKcNS0_4impl11parse_errorEEC2INS5_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S5_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1647
11.3k
        : base(unexpect, std::move(e.error())),
1648
11.3k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
11.3k
    {
1650
11.3k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
_ZN3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEEC2ISD_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISD_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SD_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Line
Count
Source
1647
20
        : base(unexpect, std::move(e.error())),
1648
20
          ctor_base(detail::non_default_ctor_tag_t{})
1649
20
    {
1650
20
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISL_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSP_IXsr3stdE16is_convertible_vISR_SL_EEvE4typeELSV_0EEEONS0_10unexpectedISQ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEC2ISF_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISF_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SF_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEC2INSC_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSH_IXsr3stdE16is_convertible_vISJ_SC_EEvE4typeELSN_0EEEONS0_10unexpectedISI_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEC2ISE_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISE_OT_EEvE4typeELPv0ETnPNSI_IXsr3stdE16is_convertible_vISK_SE_EEvE4typeELSO_0EEEONS0_10unexpectedISJ_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEEC2ISO_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISO_OT_EEvE4typeELPv0ETnPNSR_IXsr3stdE16is_convertible_vIST_SO_EEvE4typeELSX_0EEEONS0_10unexpectedISS_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEC2INS7_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S7_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEC2IS9_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S9_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEEC2ISI_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
_ZN3scn2v48expectedIPKwNS0_4impl9eof_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1647
196
        : base(unexpect, std::move(e.error())),
1648
196
          ctor_base(detail::non_default_ctor_tag_t{})
1649
196
    {
1650
196
    }
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1647
352
        : base(unexpect, std::move(e.error())),
1648
352
          ctor_base(detail::non_default_ctor_tag_t{})
1649
352
    {
1650
352
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNS9_9enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSL_IXsr3stdE16is_convertible_vISN_SI_EEvE4typeELSR_0EEEONS0_10unexpectedISM_EE
_ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEEC2ISB_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Line
Count
Source
1647
116
        : base(unexpect, std::move(e.error())),
1648
116
          ctor_base(detail::non_default_ctor_tag_t{})
1649
116
    {
1650
116
    }
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEEC2IS7_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S7_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1647
1.92k
        : base(unexpect, std::move(e.error())),
1648
1.92k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
1.92k
    {
1650
1.92k
    }
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S8_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Line
Count
Source
1647
542
        : base(unexpect, std::move(e.error())),
1648
542
          ctor_base(detail::non_default_ctor_tag_t{})
1649
542
    {
1650
542
    }
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEC2INS8_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS8_OT_EEvE4typeELPv0ETnPNSD_IXsr3stdE16is_convertible_vISF_S8_EEvE4typeELSJ_0EEEONS0_10unexpectedISE_EE
Line
Count
Source
1647
2.87k
        : base(unexpect, std::move(e.error())),
1648
2.87k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
2.87k
    {
1650
2.87k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEC2ISC_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSF_IXsr3stdE16is_convertible_vISH_SC_EEvE4typeELSL_0EEEONS0_10unexpectedISG_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISA_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SA_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
_ZN3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEEC2ISK_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISK_OT_EEvE4typeELPv0ETnPNSN_IXsr3stdE16is_convertible_vISP_SK_EEvE4typeELST_0EEEONS0_10unexpectedISO_EE
Line
Count
Source
1647
44
        : base(unexpect, std::move(e.error())),
1648
44
          ctor_base(detail::non_default_ctor_tag_t{})
1649
44
    {
1650
44
    }
_ZN3scn2v48expectedIPKwNS0_4impl11parse_errorEEC2IS5_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNS9_IXsr3stdE16is_convertible_vISB_S5_EEvE4typeELSF_0EEEONS0_10unexpectedISA_EE
Line
Count
Source
1647
6.73k
        : base(unexpect, std::move(e.error())),
1648
6.73k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
6.73k
    {
1650
6.73k
    }
_ZN3scn2v48expectedIPKwNS0_4impl11parse_errorEEC2INS5_4codeETnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS5_OT_EEvE4typeELPv0ETnPNSA_IXsr3stdE16is_convertible_vISC_S5_EEvE4typeELSG_0EEEONS0_10unexpectedISB_EE
Line
Count
Source
1647
78.2k
        : base(unexpect, std::move(e.error())),
1648
78.2k
          ctor_base(detail::non_default_ctor_tag_t{})
1649
78.2k
    {
1650
78.2k
    }
Unexecuted instantiation: _ZN3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEC2IS9_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vIS9_OT_EEvE4typeELPv0ETnPNSC_IXsr3stdE16is_convertible_vISE_S9_EEvE4typeELSI_0EEEONS0_10unexpectedISD_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEC2IS7_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vIS7_OT_EEvE4typeELPv0ETnPNSB_IXsr3stdE16is_convertible_vISD_S7_EEvE4typeELSH_0EEEONS0_10unexpectedISC_EE
_ZN3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEEC2ISG_TnPNS2_9enable_ifIXsr3stdE18is_constructible_vISG_OT_EEvE4typeELPv0ETnPNSJ_IXsr3stdE16is_convertible_vISL_SG_EEvE4typeELSP_0EEEONS0_10unexpectedISK_EE
Line
Count
Source
1647
40
        : base(unexpect, std::move(e.error())),
1648
40
          ctor_base(detail::non_default_ctor_tag_t{})
1649
40
    {
1650
40
    }
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSM_IXsr3stdE16is_convertible_vISO_SI_EEvE4typeELSS_0EEEONS0_10unexpectedISN_EE
Line
Count
Source
1647
382
        : base(unexpect, std::move(e.error())),
1648
382
          ctor_base(detail::non_default_ctor_tag_t{})
1649
382
    {
1650
382
    }
_ZN3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEC2ISI_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISI_OT_EEvE4typeELPv0ETnPNSM_IXsr3stdE16is_convertible_vISO_SI_EEvE4typeELSS_0EEEONS0_10unexpectedISN_EE
Line
Count
Source
1647
116
        : base(unexpect, std::move(e.error())),
1648
116
          ctor_base(detail::non_default_ctor_tag_t{})
1649
116
    {
1650
116
    }
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISL_TnPNSD_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEENS0_10scan_errorEEC2ISD_TnPNS7_9enable_ifIXsr3stdE18is_constructible_vISD_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SD_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEEC2ISB_TnPNS6_9enable_ifIXsr3stdE18is_constructible_vISB_OT_EEvE4typeELPv0ETnPNSE_IXsr3stdE16is_convertible_vISG_SB_EEvE4typeELSK_0EEEONS0_10unexpectedISF_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEEC2ISL_TnPNSD_9enable_ifIXsr3stdE18is_constructible_vISL_OT_EEvE4typeELPv0ETnPNSO_IXsr3stdE16is_convertible_vISQ_SL_EEvE4typeELSU_0EEEONS0_10unexpectedISP_EE
Unexecuted instantiation: _ZN3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEC2ISC_TnPNSt3__19enable_ifIXsr3stdE18is_constructible_vISC_OT_EEvE4typeELPv0ETnPNSG_IXsr3stdE16is_convertible_vISI_SC_EEvE4typeELSM_0EEEONS0_10unexpectedISH_EE
1651
1652
    /// Construct an unexpected value directly in-place
1653
    template <typename... Args,
1654
              typename = std::enable_if_t<std::is_constructible_v<E, Args...>>>
1655
    explicit constexpr expected(unexpect_t, Args&&... args) noexcept(
1656
        std::is_nothrow_constructible_v<base, unexpect_t, Args&&...>)
1657
11.5k
        : base(unexpect, std::forward<Args>(args)...),
1658
11.5k
          ctor_base(detail::non_default_ctor_tag_t{})
1659
11.5k
    {
1660
11.5k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::expected<char const*, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1657
950
        : base(unexpect, std::forward<Args>(args)...),
1658
950
          ctor_base(detail::non_default_ctor_tag_t{})
1659
950
    {
1660
950
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1657
1.72k
        : base(unexpect, std::forward<Args>(args)...),
1658
1.72k
          ctor_base(detail::non_default_ctor_tag_t{})
1659
1.72k
    {
1660
1.72k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Line
Count
Source
1657
446
        : base(unexpect, std::forward<Args>(args)...),
1658
446
          ctor_base(detail::non_default_ctor_tag_t{})
1659
446
    {
1660
446
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1657
846
        : base(unexpect, std::forward<Args>(args)...),
1658
846
          ctor_base(detail::non_default_ctor_tag_t{})
1659
846
    {
1660
846
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1657
6.55k
        : base(unexpect, std::forward<Args>(args)...),
1658
6.55k
          ctor_base(detail::non_default_ctor_tag_t{})
1659
6.55k
    {
1660
6.55k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Line
Count
Source
1657
338
        : base(unexpect, std::forward<Args>(args)...),
1658
338
          ctor_base(detail::non_default_ctor_tag_t{})
1659
338
    {
1660
338
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Line
Count
Source
1657
196
        : base(unexpect, std::forward<Args>(args)...),
1658
196
          ctor_base(detail::non_default_ctor_tag_t{})
1659
196
    {
1660
196
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
scn::v4::expected<char const*, scn::v4::impl::parse_error>::expected<scn::v4::impl::parse_error, void>(scn::v4::unexpect_t, scn::v4::impl::parse_error&&)
Line
Count
Source
1657
102
        : base(unexpect, std::forward<Args>(args)...),
1658
102
          ctor_base(detail::non_default_ctor_tag_t{})
1659
102
    {
1660
102
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1657
238
        : base(unexpect, std::forward<Args>(args)...),
1658
238
          ctor_base(detail::non_default_ctor_tag_t{})
1659
238
    {
1660
238
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::expected<scn::v4::scan_error, void>(scn::v4::unexpect_t, scn::v4::scan_error&&)
Line
Count
Source
1657
116
        : base(unexpect, std::forward<Args>(args)...),
1658
116
          ctor_base(detail::non_default_ctor_tag_t{})
1659
116
    {
1660
116
    }
1661
1662
    template <
1663
        typename U,
1664
        typename G,
1665
        std::enable_if_t<!(std::is_convertible_v<const U&, T> &&
1666
                           std::is_convertible_v<const G&, E>)>* = nullptr,
1667
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1668
    explicit constexpr expected(const expected<U, G>& other) noexcept(
1669
        std::is_nothrow_constructible_v<T, const U&> &&
1670
        std::is_nothrow_constructible_v<E, const G&>)
1671
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1672
    {
1673
        if (other.has_value()) {
1674
            this->construct(*other);
1675
        }
1676
        else {
1677
            this->construct_unexpected(other.error());
1678
        }
1679
    }
1680
    template <
1681
        typename U,
1682
        typename G,
1683
        std::enable_if_t<(std::is_convertible_v<const U&, T> &&
1684
                          std::is_convertible_v<const G&, E>)>* = nullptr,
1685
        detail::enable_from_other<T, E, U, G, const U&, const G&>* = nullptr>
1686
    constexpr expected(const expected<U, G>& other) noexcept(
1687
        std::is_nothrow_constructible_v<T, const U&> &&
1688
        std::is_nothrow_constructible_v<E, const G&>)
1689
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1690
    {
1691
        if (other.has_value()) {
1692
            this->construct(*other);
1693
        }
1694
        else {
1695
            this->construct_unexpected(other.error());
1696
        }
1697
    }
1698
1699
    template <typename U,
1700
              typename G,
1701
              std::enable_if_t<!(std::is_convertible_v<U&&, T> &&
1702
                                 std::is_convertible_v<G&&, E>)>* = nullptr,
1703
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1704
    explicit constexpr expected(expected<U, G>&& other) noexcept(
1705
        std::is_nothrow_constructible_v<T, U&&> &&
1706
        std::is_nothrow_constructible_v<E, G&&>)
1707
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1708
    {
1709
        if (other.has_value()) {
1710
            this->construct(std::move(*other));
1711
        }
1712
        else {
1713
            this->construct_unexpected(std::move(other.error()));
1714
        }
1715
    }
1716
    template <typename U,
1717
              typename G,
1718
              std::enable_if_t<(std::is_convertible_v<U&&, T> &&
1719
                                std::is_convertible_v<G&&, E>)>* = nullptr,
1720
              detail::enable_from_other<T, E, U, G, U&&, G&&>* = nullptr>
1721
    constexpr expected(expected<U, G>&& other) noexcept(
1722
        std::is_nothrow_constructible_v<T, U&&> &&
1723
        std::is_nothrow_constructible_v<E, G&&>)
1724
        : base(), ctor_base(detail::non_default_ctor_tag_t{})
1725
    {
1726
        if (other.has_value()) {
1727
            this->construct(std::move(*other));
1728
        }
1729
        else {
1730
            this->construct_unexpected(std::move(other.error()));
1731
        }
1732
    }
1733
1734
    template <typename U = value_type,
1735
              typename = std::enable_if_t<std::is_convertible_v<U, value_type>>>
1736
    expected& operator=(U&& val) noexcept(
1737
        noexcept(assign_value(std::forward<U>(val))))
1738
    {
1739
        assign_value(std::forward<U>(val));
1740
        return *this;
1741
    }
1742
1743
    expected& operator=(const unexpected_type& unex) noexcept(
1744
        noexcept(assign_unexpected(unex)))
1745
    {
1746
        assign_unexpected(unex);
1747
        return *this;
1748
    }
1749
    expected& operator=(unexpected_type&& unex) noexcept(
1750
        noexcept(assign_unexpected(std::move(unex))))
1751
    {
1752
        assign_unexpected(std::move(unex));
1753
        return *this;
1754
    }
1755
1756
    /// Destroys the contained value, and then initializes the expected
1757
    /// value directly in-place.
1758
    template <typename... Args,
1759
              std::enable_if_t<std::is_constructible_v<T, Args...>>* = nullptr>
1760
    decltype(auto) emplace(Args&&... args) noexcept(
1761
        std::is_nothrow_constructible_v<T, Args...>)
1762
    {
1763
        emplace_impl(std::forward<Args>(args)...);
1764
        if constexpr (!std::is_void_v<T>) {
1765
            return this->get_value();
1766
        }
1767
    }
1768
1769
    using base::has_value;
1770
    constexpr explicit operator bool() const noexcept
1771
3.06M
    {
1772
3.06M
        return has_value();
1773
3.06M
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
50.5k
    {
1772
50.5k
        return has_value();
1773
50.5k
    }
scn::v4::expected<long, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
174k
    {
1772
174k
        return has_value();
1773
174k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
101k
    {
1772
101k
        return has_value();
1773
101k
    }
scn::v4::expected<void, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
2.11M
    {
1772
2.11M
        return has_value();
1773
2.11M
    }
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::operator bool() const
scn::v4::expected<char const*, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
57.2k
    {
1772
57.2k
        return has_value();
1773
57.2k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
220k
    {
1772
220k
        return has_value();
1773
220k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::operator bool() const
scn::v4::expected<char const*, scn::v4::impl::eof_error>::operator bool() const
Line
Count
Source
1771
40.8k
    {
1772
40.8k
        return has_value();
1773
40.8k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::operator bool() const
Line
Count
Source
1771
7.75k
    {
1772
7.75k
        return has_value();
1773
7.75k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
5.10k
    {
1772
5.10k
        return has_value();
1773
5.10k
    }
scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
9.25k
    {
1772
9.25k
        return has_value();
1773
9.25k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::operator bool() const
Line
Count
Source
1771
7.91k
    {
1772
7.91k
        return has_value();
1773
7.91k
    }
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Line
Count
Source
1771
1.03k
    {
1772
1.03k
        return has_value();
1773
1.03k
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
1.03k
    {
1772
1.03k
        return has_value();
1773
1.03k
    }
scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
24
    {
1772
24
        return has_value();
1773
24
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
10.4k
    {
1772
10.4k
        return has_value();
1773
10.4k
    }
scn::v4::expected<char const*, scn::v4::impl::parse_error>::operator bool() const
Line
Count
Source
1771
15.4k
    {
1772
15.4k
        return has_value();
1773
15.4k
    }
scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Line
Count
Source
1771
2.77k
    {
1772
2.77k
        return has_value();
1773
2.77k
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
2.77k
    {
1772
2.77k
        return has_value();
1773
2.77k
    }
scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
20
    {
1772
20
        return has_value();
1773
20
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
358
    {
1772
358
        return has_value();
1773
358
    }
scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
928
    {
1772
928
        return has_value();
1773
928
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::operator bool() const
scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::operator bool() const
Line
Count
Source
1771
39.1k
    {
1772
39.1k
        return has_value();
1773
39.1k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::operator bool() const
Line
Count
Source
1771
1.27k
    {
1772
1.27k
        return has_value();
1773
1.27k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
2.47k
    {
1772
2.47k
        return has_value();
1773
2.47k
    }
scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
6.72k
    {
1772
6.72k
        return has_value();
1773
6.72k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::operator bool() const
Line
Count
Source
1771
4.45k
    {
1772
4.45k
        return has_value();
1773
4.45k
    }
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Line
Count
Source
1771
596
    {
1772
596
        return has_value();
1773
596
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
596
    {
1772
596
        return has_value();
1773
596
    }
scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
52
    {
1772
52
        return has_value();
1773
52
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
5.23k
    {
1772
5.23k
        return has_value();
1773
5.23k
    }
scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::operator bool() const
Line
Count
Source
1771
130k
    {
1772
130k
        return has_value();
1773
130k
    }
scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator bool() const
Line
Count
Source
1771
19.5k
    {
1772
19.5k
        return has_value();
1773
19.5k
    }
scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
19.5k
    {
1772
19.5k
        return has_value();
1773
19.5k
    }
scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
48
    {
1772
48
        return has_value();
1773
48
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
190
    {
1772
190
        return has_value();
1773
190
    }
scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
6.54k
    {
1772
6.54k
        return has_value();
1773
6.54k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
Line
Count
Source
1771
1.31k
    {
1772
1.31k
        return has_value();
1773
1.31k
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
2.18k
    {
1772
2.18k
        return has_value();
1773
2.18k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::operator bool() const
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::operator bool() const
Line
Count
Source
1771
1.21k
    {
1772
1.21k
        return has_value();
1773
1.21k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator bool() const
1774
1775
    /// Get the unexpected value, if one is contained in *this
1776
    constexpr error_type& error() & noexcept
1777
659k
    {
1778
659k
        SCN_EXPECT(!has_value());
1779
659k
        return this->get_unexpected().error();
1780
659k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1777
48.3k
    {
1778
48.3k
        SCN_EXPECT(!has_value());
1779
48.3k
        return this->get_unexpected().error();
1780
48.3k
    }
scn::v4::expected<long, scn::v4::scan_error>::error() &
Line
Count
Source
1777
176k
    {
1778
176k
        SCN_EXPECT(!has_value());
1779
176k
        return this->get_unexpected().error();
1780
176k
    }
scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1777
99.0k
    {
1778
99.0k
        SCN_EXPECT(!has_value());
1779
99.0k
        return this->get_unexpected().error();
1780
99.0k
    }
scn::v4::expected<void, scn::v4::scan_error>::error() &
Line
Count
Source
1777
163k
    {
1778
163k
        SCN_EXPECT(!has_value());
1779
163k
        return this->get_unexpected().error();
1780
163k
    }
Unexecuted instantiation: scn::v4::expected<wchar_t, scn::v4::scan_error>::error() &
scn::v4::expected<char const*, scn::v4::scan_error>::error() &
Line
Count
Source
1777
32.3k
    {
1778
32.3k
        SCN_EXPECT(!has_value());
1779
32.3k
        return this->get_unexpected().error();
1780
32.3k
    }
scn::v4::expected<wchar_t const*, scn::v4::scan_error>::error() &
Line
Count
Source
1777
80.3k
    {
1778
80.3k
        SCN_EXPECT(!has_value());
1779
80.3k
        return this->get_unexpected().error();
1780
80.3k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, long>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1777
238
    {
1778
238
        SCN_EXPECT(!has_value());
1779
238
        return this->get_unexpected().error();
1780
238
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, long>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() &
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() &
Line
Count
Source
1777
2.91k
    {
1778
2.91k
        SCN_EXPECT(!has_value());
1779
2.91k
        return this->get_unexpected().error();
1780
2.91k
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Line
Count
Source
1777
24
    {
1778
24
        SCN_EXPECT(!has_value());
1779
24
        return this->get_unexpected().error();
1780
24
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1777
6.21k
    {
1778
6.21k
        SCN_EXPECT(!has_value());
1779
6.21k
        return this->get_unexpected().error();
1780
6.21k
    }
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() &
scn::v4::expected<char const*, scn::v4::impl::parse_error>::error() &
Line
Count
Source
1777
5.68k
    {
1778
5.68k
        SCN_EXPECT(!has_value());
1779
5.68k
        return this->get_unexpected().error();
1780
5.68k
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::tuple<char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Line
Count
Source
1777
20
    {
1778
20
        SCN_EXPECT(!has_value());
1779
20
        return this->get_unexpected().error();
1780
20
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, long>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, long>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::tuple<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, long>, scn::v4::scan_error>::error() &
Line
Count
Source
1777
116
    {
1778
116
        SCN_EXPECT(!has_value());
1779
116
        return this->get_unexpected().error();
1780
116
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, long>, scn::v4::scan_error>::error() &
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() &
Line
Count
Source
1777
14
    {
1778
14
        SCN_EXPECT(!has_value());
1779
14
        return this->get_unexpected().error();
1780
14
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() &
Line
Count
Source
1777
1.67k
    {
1778
1.67k
        SCN_EXPECT(!has_value());
1779
1.67k
        return this->get_unexpected().error();
1780
1.67k
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::tuple<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Line
Count
Source
1777
44
    {
1778
44
        SCN_EXPECT(!has_value());
1779
44
        return this->get_unexpected().error();
1780
44
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>::error() &
Line
Count
Source
1777
2.58k
    {
1778
2.58k
        SCN_EXPECT(!has_value());
1779
2.58k
        return this->get_unexpected().error();
1780
2.58k
    }
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() &
scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::error() &
Line
Count
Source
1777
39.4k
    {
1778
39.4k
        SCN_EXPECT(!has_value());
1779
39.4k
        return this->get_unexpected().error();
1780
39.4k
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::scan_error>::error() &
scn::v4::expected<std::__1::tuple<wchar_t const*, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Line
Count
Source
1777
40
    {
1778
40
        SCN_EXPECT(!has_value());
1779
40
        return this->get_unexpected().error();
1780
40
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::scan_error>::error() &
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::scan_error>::error() &
Line
Count
Source
1777
238
    {
1778
238
        SCN_EXPECT(!has_value());
1779
238
        return this->get_unexpected().error();
1780
238
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::scan_error>::error() &
Line
Count
Source
1777
116
    {
1778
116
        SCN_EXPECT(!has_value());
1779
116
        return this->get_unexpected().error();
1780
116
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &
1781
    constexpr const error_type& error() const& noexcept
1782
0
    {
1783
0
        SCN_EXPECT(!has_value());
1784
0
        return this->get_unexpected().error();
1785
0
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<char const*, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<wchar_t const*, scn::v4::impl::parse_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() const &
1786
    constexpr error_type&& error() && noexcept
1787
13.0k
    {
1788
13.0k
        SCN_EXPECT(!has_value());
1789
13.0k
        return std::move(this->get_unexpected().error());
1790
13.0k
    }
scn::v4::expected<void, scn::v4::scan_error>::error() &&
Line
Count
Source
1787
10.0k
    {
1788
10.0k
        SCN_EXPECT(!has_value());
1789
10.0k
        return std::move(this->get_unexpected().error());
1790
10.0k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::eof_error>::error() &&
scn::v4::expected<char const*, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1787
102
    {
1788
102
        SCN_EXPECT(!has_value());
1789
102
        return std::move(this->get_unexpected().error());
1790
102
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1787
446
    {
1788
446
        SCN_EXPECT(!has_value());
1789
446
        return std::move(this->get_unexpected().error());
1790
446
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::eof_error>::error() &&
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::parse_error>::error() &&
Line
Count
Source
1787
1.01k
    {
1788
1.01k
        SCN_EXPECT(!has_value());
1789
1.01k
        return std::move(this->get_unexpected().error());
1790
1.01k
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<char const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::parse_error>::error() &&
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1787
338
    {
1788
338
        SCN_EXPECT(!has_value());
1789
338
        return std::move(this->get_unexpected().error());
1790
338
    }
scn::v4::expected<wchar_t const*, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1787
196
    {
1788
196
        SCN_EXPECT(!has_value());
1789
196
        return std::move(this->get_unexpected().error());
1790
196
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::eof_error>::error() &&
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::parse_error>::error() &&
Line
Count
Source
1787
488
    {
1788
488
        SCN_EXPECT(!has_value());
1789
488
        return std::move(this->get_unexpected().error());
1790
488
    }
Unexecuted instantiation: scn::v4::expected<scn::v4::impl::parse_integer_prefix_result<wchar_t const*>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::error() &&
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1787
238
    {
1788
238
        SCN_EXPECT(!has_value());
1789
238
        return std::move(this->get_unexpected().error());
1790
238
    }
scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::eof_error>::error() &&
Line
Count
Source
1787
116
    {
1788
116
        SCN_EXPECT(!has_value());
1789
116
        return std::move(this->get_unexpected().error());
1790
116
    }
1791
    constexpr const error_type&& error() const&& noexcept
1792
    {
1793
        SCN_EXPECT(!has_value());
1794
        return std::move(this->get_unexpected().error());
1795
    }
1796
1797
    /// Get the expected value, if one is contained in *this
1798
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1799
    constexpr U& value() & noexcept
1800
634k
    {
1801
634k
        SCN_EXPECT(has_value());
1802
634k
        return this->get_value();
1803
634k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1800
2.23k
    {
1801
2.23k
        SCN_EXPECT(has_value());
1802
2.23k
        return this->get_value();
1803
2.23k
    }
_ZNR3scn2v48expectedIlNS0_10scan_errorEE5valueIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
Line
Count
Source
1800
4.48k
    {
1801
4.48k
        SCN_EXPECT(has_value());
1802
4.48k
        return this->get_value();
1803
4.48k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJcEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
5.89k
    {
1801
5.89k
        SCN_EXPECT(has_value());
1802
5.89k
        return this->get_value();
1803
5.89k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJiEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
5.61k
    {
1801
5.61k
        SCN_EXPECT(has_value());
1802
5.61k
        return this->get_value();
1803
5.61k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJjEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
5.61k
    {
1801
5.61k
        SCN_EXPECT(has_value());
1802
5.61k
        return this->get_value();
1803
5.61k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJdEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
5.61k
    {
1801
5.61k
        SCN_EXPECT(has_value());
1802
5.61k
        return this->get_value();
1803
5.61k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJbEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
5.61k
    {
1801
5.61k
        SCN_EXPECT(has_value());
1802
5.61k
        return this->get_value();
1803
5.61k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJPvEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELSA_0EEERSH_v
Line
Count
Source
1800
5.61k
    {
1801
5.61k
        SCN_EXPECT(has_value());
1802
5.61k
        return this->get_value();
1803
5.61k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1800
6.27k
    {
1801
6.27k
        SCN_EXPECT(has_value());
1802
6.27k
        return this->get_value();
1803
6.27k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1800
6.27k
    {
1801
6.27k
        SCN_EXPECT(has_value());
1802
6.27k
        return this->get_value();
1803
6.27k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEENS0_10scan_errorEE5valueISF_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Line
Count
Source
1800
6.27k
    {
1801
6.27k
        SCN_EXPECT(has_value());
1802
6.27k
        return this->get_value();
1803
6.27k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1800
2.07k
    {
1801
2.07k
        SCN_EXPECT(has_value());
1802
2.07k
        return this->get_value();
1803
2.07k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJwEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
11.4k
    {
1801
11.4k
        SCN_EXPECT(has_value());
1802
11.4k
        return this->get_value();
1803
11.4k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJiEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
11.2k
    {
1801
11.2k
        SCN_EXPECT(has_value());
1802
11.2k
        return this->get_value();
1803
11.2k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJjEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
11.2k
    {
1801
11.2k
        SCN_EXPECT(has_value());
1802
11.2k
        return this->get_value();
1803
11.2k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJdEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
11.2k
    {
1801
11.2k
        SCN_EXPECT(has_value());
1802
11.2k
        return this->get_value();
1803
11.2k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJbEEENS0_10scan_errorEE5valueISA_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
11.2k
    {
1801
11.2k
        SCN_EXPECT(has_value());
1802
11.2k
        return this->get_value();
1803
11.2k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJPvEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELSA_0EEERSH_v
Line
Count
Source
1800
11.2k
    {
1801
11.2k
        SCN_EXPECT(has_value());
1802
11.2k
        return this->get_value();
1803
11.2k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1800
11.7k
    {
1801
11.7k
        SCN_EXPECT(has_value());
1802
11.7k
        return this->get_value();
1803
11.7k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEENS0_10scan_errorEE5valueISH_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Line
Count
Source
1800
11.7k
    {
1801
11.7k
        SCN_EXPECT(has_value());
1802
11.7k
        return this->get_value();
1803
11.7k
    }
_ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEENS0_10scan_errorEE5valueISF_TnPNSA_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Line
Count
Source
1800
11.7k
    {
1801
11.7k
        SCN_EXPECT(has_value());
1802
11.7k
        return this->get_value();
1803
11.7k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedIwNS0_10scan_errorEE5valueIwTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
_ZNR3scn2v48expectedIPKcNS0_10scan_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1800
22.0k
    {
1801
22.0k
        SCN_EXPECT(has_value());
1802
22.0k
        return this->get_value();
1803
22.0k
    }
_ZNR3scn2v48expectedIPKwNS0_10scan_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1800
120k
    {
1801
120k
        SCN_EXPECT(has_value());
1802
120k
        return this->get_value();
1803
120k
    }
_ZNR3scn2v48expectedIPKcNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1800
45.4k
    {
1801
45.4k
        SCN_EXPECT(has_value());
1802
45.4k
        return this->get_value();
1803
45.4k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEE5valueISK_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
8.69k
    {
1801
8.69k
        SCN_EXPECT(has_value());
1802
8.69k
        return this->get_value();
1803
8.69k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
_ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Line
Count
Source
1800
4.86k
    {
1801
4.86k
        SCN_EXPECT(has_value());
1802
4.86k
        return this->get_value();
1803
4.86k
    }
_ZNR3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEE5valueIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1800
9.25k
    {
1801
9.25k
        SCN_EXPECT(has_value());
1802
9.25k
        return this->get_value();
1803
9.25k
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
1.88k
    {
1801
1.88k
        SCN_EXPECT(has_value());
1802
1.88k
        return this->get_value();
1803
1.88k
    }
_ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
1.39k
    {
1801
1.39k
        SCN_EXPECT(has_value());
1802
1.39k
        return this->get_value();
1803
1.39k
    }
_ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Line
Count
Source
1800
1.03k
    {
1801
1.03k
        SCN_EXPECT(has_value());
1802
1.03k
        return this->get_value();
1803
1.03k
    }
_ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS0_10scan_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Line
Count
Source
1800
1.03k
    {
1801
1.03k
        SCN_EXPECT(has_value());
1802
1.03k
        return this->get_value();
1803
1.03k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEE5valueISG_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSL_v
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
3.48k
    {
1801
3.48k
        SCN_EXPECT(has_value());
1802
3.48k
        return this->get_value();
1803
3.48k
    }
_ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1800
1.96k
    {
1801
1.96k
        SCN_EXPECT(has_value());
1802
1.96k
        return this->get_value();
1803
1.96k
    }
_ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
3.70k
    {
1801
3.70k
        SCN_EXPECT(has_value());
1802
3.70k
        return this->get_value();
1803
3.70k
    }
_ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1800
2.77k
    {
1801
2.77k
        SCN_EXPECT(has_value());
1802
2.77k
        return this->get_value();
1803
2.77k
    }
_ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS0_10scan_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1800
2.77k
    {
1801
2.77k
        SCN_EXPECT(has_value());
1802
2.77k
        return this->get_value();
1803
2.77k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEE5valueISC_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
_ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS0_10scan_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
358
    {
1801
358
        SCN_EXPECT(has_value());
1802
358
        return this->get_value();
1803
358
    }
_ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
928
    {
1801
928
        SCN_EXPECT(has_value());
1802
928
        return this->get_value();
1803
928
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEE5valueISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEE5valueISN_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSS_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS0_10scan_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEE5valueISH_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
_ZNR3scn2v48expectedIPKwNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1800
103k
    {
1801
103k
        SCN_EXPECT(has_value());
1802
103k
        return this->get_value();
1803
103k
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
1.52k
    {
1801
1.52k
        SCN_EXPECT(has_value());
1802
1.52k
        return this->get_value();
1803
1.52k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
_ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Line
Count
Source
1800
2.36k
    {
1801
2.36k
        SCN_EXPECT(has_value());
1802
2.36k
        return this->get_value();
1803
2.36k
    }
_ZNR3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEE5valueIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
Line
Count
Source
1800
6.72k
    {
1801
6.72k
        SCN_EXPECT(has_value());
1802
6.72k
        return this->get_value();
1803
6.72k
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
1.06k
    {
1801
1.06k
        SCN_EXPECT(has_value());
1802
1.06k
        return this->get_value();
1803
1.06k
    }
_ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
786
    {
1801
786
        SCN_EXPECT(has_value());
1802
786
        return this->get_value();
1803
786
    }
_ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Line
Count
Source
1800
596
    {
1801
596
        SCN_EXPECT(has_value());
1802
596
        return this->get_value();
1803
596
    }
_ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS0_10scan_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Line
Count
Source
1800
596
    {
1801
596
        SCN_EXPECT(has_value());
1802
596
        return this->get_value();
1803
596
    }
_ZNR3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEE5valueISJ_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSO_v
Line
Count
Source
1800
8
    {
1801
8
        SCN_EXPECT(has_value());
1802
8
        return this->get_value();
1803
8
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
2.25k
    {
1801
2.25k
        SCN_EXPECT(has_value());
1802
2.25k
        return this->get_value();
1803
2.25k
    }
_ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1800
39.1k
    {
1801
39.1k
        SCN_EXPECT(has_value());
1802
39.1k
        return this->get_value();
1803
39.1k
    }
_ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
26.1k
    {
1801
26.1k
        SCN_EXPECT(has_value());
1802
26.1k
        return this->get_value();
1803
26.1k
    }
_ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1800
19.5k
    {
1801
19.5k
        SCN_EXPECT(has_value());
1802
19.5k
        return this->get_value();
1803
19.5k
    }
_ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS0_10scan_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Line
Count
Source
1800
19.5k
    {
1801
19.5k
        SCN_EXPECT(has_value());
1802
19.5k
        return this->get_value();
1803
19.5k
    }
_ZNR3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Line
Count
Source
1800
8
    {
1801
8
        SCN_EXPECT(has_value());
1802
8
        return this->get_value();
1803
8
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
_ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS0_10scan_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Line
Count
Source
1800
190
    {
1801
190
        SCN_EXPECT(has_value());
1802
190
        return this->get_value();
1803
190
    }
_ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS0_10scan_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1800
6.54k
    {
1801
6.54k
        SCN_EXPECT(has_value());
1802
6.54k
        return this->get_value();
1803
6.54k
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Line
Count
Source
1800
3.70k
    {
1801
3.70k
        SCN_EXPECT(has_value());
1802
3.70k
        return this->get_value();
1803
3.70k
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Line
Count
Source
1800
1.95k
    {
1801
1.95k
        SCN_EXPECT(has_value());
1802
1.95k
        return this->get_value();
1803
1.95k
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Line
Count
Source
1800
1.10k
    {
1801
1.10k
        SCN_EXPECT(has_value());
1802
1.10k
        return this->get_value();
1803
1.10k
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Line
Count
Source
1800
1.10k
    {
1801
1.10k
        SCN_EXPECT(has_value());
1802
1.10k
        return this->get_value();
1803
1.10k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISK_TnPNSD_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEE5valueISA_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEENS0_10scan_errorEE5valueISC_TnPNS7_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEENS0_10scan_errorEE5valueISK_TnPNSD_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSP_v
1804
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1805
    constexpr const U& value() const& noexcept
1806
0
    {
1807
0
        SCN_EXPECT(has_value());
1808
0
        return this->get_value();
1809
0
    }
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE5valueISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE5valueISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE5valueIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE5valueIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl9eof_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE5valueIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE5valueIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE5valueIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE5valueISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE5valueISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE5valueISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE5valueIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl11parse_errorEE5valueIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE5valueISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
1810
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1811
    constexpr U&& value() && noexcept
1812
    {
1813
        SCN_EXPECT(has_value());
1814
        return std::move(this->get_value());
1815
    }
1816
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1817
    constexpr const U&& value() const&& noexcept
1818
    {
1819
        SCN_EXPECT(has_value());
1820
        return std::move(this->get_value());
1821
    }
1822
1823
    /// Get the expected value, if one is contained in *this
1824
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1825
    constexpr U& operator*() & noexcept
1826
87.2k
    {
1827
87.2k
        return value();
1828
87.2k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKcS7_EENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1826
2.23k
    {
1827
2.23k
        return value();
1828
2.23k
    }
_ZNR3scn2v48expectedIlNS0_10scan_errorEEdeIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS7_v
Line
Count
Source
1826
4.30k
    {
1827
4.30k
        return value();
1828
4.30k
    }
_ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeIPKwS7_EENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Line
Count
Source
1826
2.07k
    {
1827
2.07k
        return value();
1828
2.07k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
_ZNR3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1826
35.0k
    {
1827
35.0k
        return value();
1828
35.0k
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1826
5.90k
    {
1827
5.90k
        return value();
1828
5.90k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1826
816
    {
1827
816
        return value();
1828
816
    }
_ZNR3scn2v48expectedIPKcNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1826
7.13k
    {
1827
7.13k
        return value();
1828
7.13k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSQ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
_ZNR3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1826
66
    {
1827
66
        return value();
1828
66
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1826
40
    {
1827
40
        return value();
1828
40
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSM_v
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1826
102
    {
1827
102
        return value();
1828
102
    }
_ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSA_v
Line
Count
Source
1826
90
    {
1827
90
        return value();
1828
90
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSB_v
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Line
Count
Source
1826
508
    {
1827
508
        return value();
1828
508
    }
_ZNR3scn2v48expectedIPKwNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERS9_v
Line
Count
Source
1826
27.2k
    {
1827
27.2k
        return value();
1828
27.2k
    }
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Line
Count
Source
1826
1.75k
    {
1827
1.75k
        return value();
1828
1.75k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSN_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES9_EENS0_10scan_errorEEdeISA_TnPNS6_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSH_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSJ_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSE_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSC_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSK_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSF_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSG_v
Unexecuted instantiation: _ZNR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERSD_v
1829
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1830
    constexpr const U& operator*() const& noexcept
1831
0
    {
1832
0
        return value();
1833
0
    }
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSQ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSJ_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSH_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSE_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSM_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSC_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSK_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSF_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSG_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSD_v
Unexecuted instantiation: _ZNKR3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSA_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
Unexecuted instantiation: _ZNKR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEERKSN_v
1834
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1835
    constexpr U&& operator*() && noexcept
1836
391k
    {
1837
391k
        return std::move(value());
1838
391k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedIwNS0_10scan_errorEEdeIwTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS7_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
_ZNO3scn2v48expectedIPKcNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS9_v
Line
Count
Source
1836
14.9k
    {
1837
14.9k
        return std::move(value());
1838
14.9k
    }
_ZNO3scn2v48expectedIPKwNS0_10scan_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS9_v
Line
Count
Source
1836
92.8k
    {
1837
92.8k
        return std::move(value());
1838
92.8k
    }
_ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1836
10.4k
    {
1837
10.4k
        return std::move(value());
1838
10.4k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorElEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESJ_EEENS0_10scan_errorEEdeISK_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSP_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESD_EEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
2.78k
    {
1837
2.78k
        return std::move(value());
1838
2.78k
    }
_ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EElEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Line
Count
Source
1836
4.86k
    {
1837
4.86k
        return std::move(value());
1838
4.86k
    }
_ZNO3scn2v48expectedINSt3__14pairIPKclEENS0_10scan_errorEEdeIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1836
9.25k
    {
1837
9.25k
        return std::move(value());
1838
9.25k
    }
_ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Line
Count
Source
1836
1.39k
    {
1837
1.39k
        return std::move(value());
1838
1.39k
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
1.88k
    {
1837
1.88k
        return std::move(value());
1838
1.88k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Line
Count
Source
1836
1.03k
    {
1837
1.03k
        return std::move(value());
1838
1.03k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS0_10scan_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Line
Count
Source
1836
1.03k
    {
1837
1.03k
        return std::move(value());
1838
1.03k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESF_EEENS0_10scan_errorEEdeISG_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSL_v
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
2.67k
    {
1837
2.67k
        return std::move(value());
1838
2.67k
    }
_ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
3.70k
    {
1837
3.70k
        return std::move(value());
1838
3.70k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1836
2.77k
    {
1837
2.77k
        return std::move(value());
1838
2.77k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS0_10scan_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1836
2.77k
    {
1837
2.77k
        return std::move(value());
1838
2.77k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJPKcNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEESB_EEENS0_10scan_errorEEdeISC_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
_ZNO3scn2v48expectedIlNS0_10scan_errorEEdeIlTnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOS7_v
Line
Count
Source
1836
176
    {
1837
176
        return std::move(value());
1838
176
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
_ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS0_10scan_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Line
Count
Source
1836
358
    {
1837
358
        return std::move(value());
1838
358
    }
_ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
928
    {
1837
928
        return std::move(value());
1838
928
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISK_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSQ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEElEENS0_10scan_errorEEdeISE_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorElEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS0_10scan_errorEEdeISD_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSJ_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSE_IcNSF_IcEENSH_IcEEEEEEENS0_10scan_errorEEdeISN_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSS_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS0_10scan_errorEEdeISB_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSH_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS0_10scan_errorEEdeIS8_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSE_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__15tupleIJNS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS8_IcNS9_IcEENSB_IcEEEEEEENS0_10scan_errorEEdeISH_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_10scan_errorEEdeIS5_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNS9_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSM_v
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
1.48k
    {
1837
1.48k
        return std::move(value());
1838
1.48k
    }
_ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EElEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Line
Count
Source
1836
2.36k
    {
1837
2.36k
        return std::move(value());
1838
2.36k
    }
_ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1836
103k
    {
1837
103k
        return std::move(value());
1838
103k
    }
_ZNO3scn2v48expectedINSt3__14pairIPKwlEENS0_10scan_errorEEdeIS6_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSB_v
Line
Count
Source
1836
6.72k
    {
1837
6.72k
        return std::move(value());
1838
6.72k
    }
_ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Line
Count
Source
1836
786
    {
1837
786
        return std::move(value());
1838
786
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
960
    {
1837
960
        return std::move(value());
1838
960
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Line
Count
Source
1836
596
    {
1837
596
        return std::move(value());
1838
596
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS0_10scan_errorEEdeIS9_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
Line
Count
Source
1836
596
    {
1837
596
        return std::move(value());
1838
596
    }
_ZNO3scn2v48expectedINSt3__15tupleIJNS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENSA_IcNSB_IcEENSD_IcEEEEEEENS0_10scan_errorEEdeISJ_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSO_v
Line
Count
Source
1836
8
    {
1837
8
        return std::move(value());
1838
8
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS0_10scan_errorEEdeIS7_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
1.74k
    {
1837
1.74k
        return std::move(value());
1838
1.74k
    }
_ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
26.1k
    {
1837
26.1k
        return std::move(value());
1838
26.1k
    }
_ZNO3scn2v48expectedIPKwNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1836
39.0k
    {
1837
39.0k
        return std::move(value());
1838
39.0k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1836
19.5k
    {
1837
19.5k
        return std::move(value());
1838
19.5k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS0_10scan_errorEEdeIS6_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSC_v
Line
Count
Source
1836
19.5k
    {
1837
19.5k
        return std::move(value());
1838
19.5k
    }
_ZNO3scn2v48expectedINSt3__15tupleIJPKwNS2_12basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEENS6_IcNS7_IcEENS9_IcEEEEEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Line
Count
Source
1836
8
    {
1837
8
        return std::move(value());
1838
8
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS0_10scan_errorEEdeISF_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSK_v
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS0_10scan_errorEEdeISA_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSF_v
_ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS0_10scan_errorEEdeISB_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSG_v
Line
Count
Source
1836
190
    {
1837
190
        return std::move(value());
1838
190
    }
_ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS0_10scan_errorEEdeIS8_TnPNS2_9enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSD_v
Line
Count
Source
1836
6.54k
    {
1837
6.54k
        return std::move(value());
1838
6.54k
    }
_ZNO3scn2v48expectedIPKcNS0_4impl11parse_errorEEdeIS3_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSA_v
Line
Count
Source
1836
1.96k
    {
1837
1.96k
        return std::move(value());
1838
1.96k
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Line
Count
Source
1836
1.95k
    {
1837
1.95k
        return std::move(value());
1838
1.95k
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Line
Count
Source
1836
1.95k
    {
1837
1.95k
        return std::move(value());
1838
1.95k
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Line
Count
Source
1836
1.10k
    {
1837
1.10k
        return std::move(value());
1838
1.10k
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS0_10scan_errorEEdeISH_TnPNSt3__19enable_ifIXntsr3stdE9is_void_vIT_EEvE4typeELPv0EEEOSN_v
Line
Count
Source
1836
1.10k
    {
1837
1.10k
        return std::move(value());
1838
1.10k
    }
1839
    template <typename U = T, std::enable_if_t<!std::is_void_v<U>>* = nullptr>
1840
    constexpr const U&& operator*() const&& noexcept
1841
    {
1842
        return std::move(value());
1843
    }
1844
1845
    constexpr value_type* operator->() noexcept
1846
155k
    {
1847
155k
        return &value();
1848
155k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
5.89k
    {
1847
5.89k
        return &value();
1848
5.89k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
5.61k
    {
1847
5.61k
        return &value();
1848
5.61k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
5.61k
    {
1847
5.61k
        return &value();
1848
5.61k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
5.61k
    {
1847
5.61k
        return &value();
1848
5.61k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
5.61k
    {
1847
5.61k
        return &value();
1848
5.61k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
5.61k
    {
1847
5.61k
        return &value();
1848
5.61k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
6.27k
    {
1847
6.27k
        return &value();
1848
6.27k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
6.27k
    {
1847
6.27k
        return &value();
1848
6.27k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
6.27k
    {
1847
6.27k
        return &value();
1848
6.27k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
11.4k
    {
1847
11.4k
        return &value();
1848
11.4k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
11.2k
    {
1847
11.2k
        return &value();
1848
11.2k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
11.2k
    {
1847
11.2k
        return &value();
1848
11.2k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
11.2k
    {
1847
11.2k
        return &value();
1848
11.2k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
11.2k
    {
1847
11.2k
        return &value();
1848
11.2k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
11.2k
    {
1847
11.2k
        return &value();
1848
11.2k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
11.7k
    {
1847
11.7k
        return &value();
1848
11.7k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
11.7k
    {
1847
11.7k
        return &value();
1848
11.7k
    }
scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, scn::v4::scan_error>::operator->()
Line
Count
Source
1846
11.7k
    {
1847
11.7k
        return &value();
1848
11.7k
    }
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<char const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<std::__1::pair<wchar_t const*, scn::v4::impl::sign_type>, scn::v4::impl::eof_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>, scn::v4::scan_error>::operator->()
Unexecuted instantiation: scn::v4::expected<scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, scn::v4::scan_error>::operator->()
1849
    constexpr const value_type* operator->() const noexcept
1850
    {
1851
        return &value();
1852
    }
1853
1854
    /// Returns the expected value if *this contains one, otherwise
1855
    /// returns default_value
1856
    template <typename U,
1857
              typename = std::enable_if_t<std::is_copy_constructible_v<T> &&
1858
                                          std::is_convertible_v<U, T>>>
1859
    constexpr T value_or(U&& default_value) const& noexcept(
1860
        std::is_nothrow_copy_constructible_v<T> &&
1861
        std::is_nothrow_constructible_v<T, U&&>)
1862
    {
1863
        if (has_value()) {
1864
            return value();
1865
        }
1866
        return std::forward<U>(default_value);
1867
    }
1868
    template <typename U,
1869
              typename = std::enable_if_t<std::is_move_constructible_v<T> &&
1870
                                          std::is_convertible_v<U, T>>>
1871
    constexpr T value_or(U&& default_value) && noexcept(
1872
        std::is_nothrow_move_constructible_v<T> &&
1873
        std::is_nothrow_constructible_v<T, U&&>)
1874
    {
1875
        if (has_value()) {
1876
            return std::move(value());
1877
        }
1878
        return std::forward<U>(default_value);
1879
    }
1880
1881
    template <typename G,
1882
              typename = std::enable_if_t<std::is_copy_constructible_v<E> &&
1883
                                          std::is_convertible_v<G, E>>>
1884
    constexpr E error_or(G&& default_error) const& noexcept(
1885
        std::is_nothrow_copy_constructible_v<E> &&
1886
        std::is_nothrow_constructible_v<E, G&&>)
1887
    {
1888
        if (!has_value()) {
1889
            return error();
1890
        }
1891
        return std::forward<G>(default_error);
1892
    }
1893
    template <typename G,
1894
              typename = std::enable_if_t<std::is_move_constructible_v<E> &&
1895
                                          std::is_convertible_v<G, E>>>
1896
    constexpr E error_or(G&& default_error) && noexcept(
1897
        std::is_nothrow_move_constructible_v<E> &&
1898
        std::is_nothrow_constructible_v<E, G&&>)
1899
    {
1900
        if (!has_value()) {
1901
            return std::move(error());
1902
        }
1903
        return std::forward<G>(default_error);
1904
    }
1905
1906
    template <typename F>
1907
    constexpr auto and_then(F&& f) & noexcept(noexcept(
1908
        detail::and_then_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1909
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1910
    {
1911
        return detail::and_then_impl(*this, std::forward<F>(f));
1912
    }
1913
    template <typename F>
1914
    constexpr auto and_then(F&& f) const& noexcept(
1915
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&),
1916
                                       std::forward<F>(f))))
1917
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1918
    {
1919
        return detail::and_then_impl(*this, std::forward<F>(f));
1920
    }
1921
    template <typename F>
1922
    constexpr auto and_then(F&& f) && noexcept(noexcept(
1923
        detail::and_then_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1924
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1925
    {
1926
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1927
    }
1928
    template <typename F>
1929
    constexpr auto and_then(F&& f) const&& noexcept(
1930
        noexcept(detail::and_then_impl(SCN_DECLVAL(const expected&&),
1931
                                       std::forward<F>(f))))
1932
        -> decltype(detail::and_then_impl(*this, std::forward<F>(f)))
1933
    {
1934
        return detail::and_then_impl(std::move(*this), std::forward<F>(f));
1935
    }
1936
1937
    template <typename F>
1938
    constexpr auto or_else(F&& f) & noexcept(noexcept(
1939
        detail::or_else_impl(SCN_DECLVAL(expected&), std::forward<F>(f))))
1940
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1941
    {
1942
        return detail::or_else_impl(*this, std::forward<F>(f));
1943
    }
1944
    template <typename F>
1945
    constexpr auto or_else(F&& f) const& noexcept(noexcept(
1946
        detail::or_else_impl(SCN_DECLVAL(const expected&), std::forward<F>(f))))
1947
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1948
    {
1949
        return detail::or_else_impl(*this, std::forward<F>(f));
1950
    }
1951
    template <typename F>
1952
    constexpr auto or_else(F&& f) && noexcept(noexcept(
1953
        detail::or_else_impl(SCN_DECLVAL(expected&&), std::forward<F>(f))))
1954
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1955
    {
1956
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1957
    }
1958
    template <typename F>
1959
    constexpr auto or_else(F&& f) const&& noexcept(
1960
        noexcept(detail::or_else_impl(SCN_DECLVAL(const expected&&),
1961
                                      std::forward<F>(f))))
1962
        -> decltype(detail::or_else_impl(*this, std::forward<F>(f)))
1963
    {
1964
        return detail::or_else_impl(std::move(*this), std::forward<F>(f));
1965
    }
1966
1967
    template <typename F>
1968
    constexpr auto transform(
1969
        F&& f) & -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1970
    {
1971
        return detail::transform_impl(*this, std::forward<F>(f));
1972
    }
1973
    template <typename F>
1974
    constexpr auto transform(F&& f)
1975
        const& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1976
    {
1977
        return detail::transform_impl(*this, std::forward<F>(f));
1978
    }
1979
    template <typename F>
1980
    constexpr auto transform(
1981
        F&& f) && -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1982
    {
1983
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1984
    }
1985
    template <typename F>
1986
    constexpr auto transform(F&& f)
1987
        const&& -> decltype(detail::transform_impl(*this, std::forward<F>(f)))
1988
    {
1989
        return detail::transform_impl(std::move(*this), std::forward<F>(f));
1990
    }
1991
1992
    template <typename F>
1993
    constexpr auto transform_error(
1994
        F&& f) & -> decltype(detail::transform_error_impl(*this,
1995
                                                          std::forward<F>(f)))
1996
8.58k
    {
1997
8.58k
        return detail::transform_error_impl(*this, std::forward<F>(f));
1998
8.58k
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
1996
716
    {
1997
716
        return detail::transform_error_impl(*this, std::forward<F>(f));
1998
716
    }
_ZNR3scn2v48expectedIPKcNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeES3_EUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
1996
950
    {
1997
950
        return detail::transform_error_impl(*this, std::forward<F>(f));
1998
950
    }
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNR3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
_ZNR3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Line
Count
Source
1996
358
    {
1997
358
        return detail::transform_error_impl(*this, std::forward<F>(f));
1998
358
    }
_ZNR3scn2v48expectedIPKwNS0_4impl11parse_errorEE15transform_errorIZNS4_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS5_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
1996
6.55k
    {
1997
6.55k
        return detail::transform_error_impl(*this, std::forward<F>(f));
1998
6.55k
    }
1999
    template <typename F>
2000
    constexpr auto transform_error(F&& f)
2001
        const& -> decltype(detail::transform_error_impl(*this,
2002
                                                        std::forward<F>(f)))
2003
    {
2004
        return detail::transform_error_impl(*this, std::forward<F>(f));
2005
    }
2006
    template <typename F>
2007
    constexpr auto transform_error(
2008
        F&& f) && -> decltype(detail::transform_error_impl(*this,
2009
                                                           std::forward<F>(f)))
2010
156k
    {
2011
156k
        return detail::transform_error_impl(std::move(*this),
2012
156k
                                            std::forward<F>(f));
2013
156k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
_ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
2010
8.47k
    {
2011
8.47k
        return detail::transform_error_impl(std::move(*this),
2012
8.47k
                                            std::forward<F>(f));
2013
8.47k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESL_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSR_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINSt3__117basic_string_viewIcNS9_11char_traitsIcEEEEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
2010
900
    {
2011
900
        return detail::transform_error_impl(std::move(*this),
2012
900
                                            std::forward<F>(f));
2013
900
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
2010
2.33k
    {
2011
2.33k
        return detail::transform_error_impl(std::move(*this),
2012
2.33k
                                            std::forward<F>(f));
2013
2.33k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKcS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Line
Count
Source
2010
1.03k
    {
2011
1.03k
        return detail::transform_error_impl(std::move(*this),
2012
1.03k
                                            std::forward<F>(f));
2013
1.03k
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeES6_EUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
2010
1.01k
    {
2011
1.01k
        return detail::transform_error_impl(std::move(*this),
2012
1.01k
                                            std::forward<F>(f));
2013
1.01k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKcEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
2010
2.77k
    {
2011
2.77k
        return detail::transform_error_impl(std::move(*this),
2012
2.77k
                                            std::forward<F>(f));
2013
2.77k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
_ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Line
Count
Source
2010
358
    {
2011
358
        return detail::transform_error_impl(std::move(*this),
2012
358
                                            std::forward<F>(f));
2013
358
    }
_ZNO3scn2v48expectedINSt3__14pairIPKcNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
2010
928
    {
2011
928
        return detail::transform_error_impl(std::move(*this),
2012
928
                                            std::forward<F>(f));
2013
928
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_15take_width_viewINS9_6detail9subrange_8subrangeIS8_SA_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESL_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSR_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESE_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlSC_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSK_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9eof_errorEE15transform_errorIRFNS6_11parse_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl11parse_errorEE15transform_errorIZNS6_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS7_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Unexecuted instantiation: _ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINSt3__117basic_string_viewIwNS9_11char_traitsIwEEEEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
2010
566
    {
2011
566
        return detail::transform_error_impl(std::move(*this),
2012
566
                                            std::forward<F>(f));
2013
566
    }
_ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS0_10scan_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
2010
64.3k
    {
2011
64.3k
        return detail::transform_error_impl(std::move(*this),
2012
64.3k
                                            std::forward<F>(f));
2013
64.3k
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_9eof_errorEE15transform_errorIRFNS2_11parse_errorES8_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
2010
1.26k
    {
2011
1.26k
        return detail::transform_error_impl(std::move(*this),
2012
1.26k
                                            std::forward<F>(f));
2013
1.26k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultINS2_27counted_width_iterator_impl22counted_width_iteratorIPKwS7_EEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESA_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Line
Count
Source
2010
596
    {
2011
596
        return detail::transform_error_impl(std::move(*this),
2012
596
                                            std::forward<F>(f));
2013
596
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS6_EENS2_11parse_errorEE15transform_errorIZNS2_29map_parse_error_to_scan_errorENS0_10scan_error4codeEPKcEUlS8_E_EEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSG_
Line
Count
Source
2010
526
    {
2011
526
        return detail::transform_error_impl(std::move(*this),
2012
526
                                            std::forward<F>(f));
2013
526
    }
_ZNO3scn2v48expectedIPKwNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
2010
39.2k
    {
2011
39.2k
        return detail::transform_error_impl(std::move(*this),
2012
39.2k
                                            std::forward<F>(f));
2013
39.2k
    }
_ZNO3scn2v48expectedINS0_4impl27parse_integer_prefix_resultIPKwEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorES7_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
2010
19.5k
    {
2011
19.5k
        return detail::transform_error_impl(std::move(*this),
2012
19.5k
                                            std::forward<F>(f));
2013
19.5k
    }
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_6ranges18default_sentinel_tEEENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESG_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSM_
Unexecuted instantiation: _ZNO3scn2v48expectedINSt3__14pairINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS0_4impl9sign_typeEEENS8_9eof_errorEE15transform_errorIRFNS0_10scan_errorESB_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSH_
_ZNO3scn2v48expectedINSt3__14pairINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EENS4_9sign_typeEEENS4_9eof_errorEE15transform_errorIRFNS0_10scan_errorESC_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSI_
Line
Count
Source
2010
190
    {
2011
190
        return detail::transform_error_impl(std::move(*this),
2012
190
                                            std::forward<F>(f));
2013
190
    }
_ZNO3scn2v48expectedINSt3__14pairIPKwNS0_4impl9sign_typeEEENS6_9eof_errorEE15transform_errorIRFNS0_10scan_errorES9_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
2010
6.54k
    {
2011
6.54k
        return detail::transform_error_impl(std::move(*this),
2012
6.54k
                                            std::forward<F>(f));
2013
6.54k
    }
_ZNO3scn2v48expectedIPKcNS0_4impl9eof_errorEE15transform_errorIRFNS4_11parse_errorES5_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSB_
Line
Count
Source
2010
2.06k
    {
2011
2.06k
        return detail::transform_error_impl(std::move(*this),
2012
2.06k
                                            std::forward<F>(f));
2013
2.06k
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKcS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Line
Count
Source
2010
2.18k
    {
2011
2.18k
        return detail::transform_error_impl(std::move(*this),
2012
2.18k
                                            std::forward<F>(f));
2013
2.18k
    }
_ZNO3scn2v48expectedINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS4_IPKwS6_EENS2_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIS6_S6_EEE8sentinelILb1EEEEENS2_9eof_errorEE15transform_errorIRFNS0_10scan_errorESI_EEEDTclsr6detailE20transform_error_impldefpTclsr3stdE7forwardIT_Efp_EEEOSO_
Line
Count
Source
2010
1.21k
    {
2011
1.21k
        return detail::transform_error_impl(std::move(*this),
2012
1.21k
                                            std::forward<F>(f));
2013
1.21k
    }
2014
    template <typename F>
2015
    constexpr auto transform_error(F&& f)
2016
        const&& -> decltype(detail::transform_error_impl(*this,
2017
                                                         std::forward<F>(f)))
2018
    {
2019
        return detail::transform_error_impl(std::move(*this),
2020
                                            std::forward<F>(f));
2021
    }
2022
2023
private:
2024
    template <typename... Args>
2025
    void emplace_impl(Args&&... args) noexcept(
2026
        std::is_nothrow_constructible_v<T, Args&&...>)
2027
    {
2028
        if (this->has_value()) {
2029
            this->destroy_value();
2030
            this->construct(std::forward<Args>(args)...);
2031
        }
2032
        else {
2033
#if SCN_HAS_EXCEPTIONS
2034
            if constexpr (std::is_nothrow_constructible_v<T, Args&&...>) {
2035
                auto tmp = std::move(error());
2036
                this->destroy_unexpected();
2037
2038
                try {
2039
                    this->construct(std::forward<Args>(args)...);
2040
                }
2041
                catch (...) {
2042
                    this->construct_unexpected(std::move(tmp));
2043
                    throw;
2044
                }
2045
            }
2046
            else {
2047
                this->construct(std::forward<Args>(args)...);
2048
            }
2049
#else
2050
            this->destroy_unexpected();
2051
            this->construct(std::forward<Args>(args)...);
2052
#endif
2053
        }
2054
    }
2055
2056
    template <typename Value>
2057
    void assign_value(Value&& val) noexcept(
2058
        std::is_nothrow_constructible_v<detail::remove_cvref_t<Value>,
2059
                                        Value&&> &&
2060
        std::is_nothrow_assignable_v<T, Value&&>)
2061
    {
2062
        if (has_value()) {
2063
            this->get_value() = std::forward<Value>(val);
2064
            return;
2065
        }
2066
2067
#if SCN_HAS_EXCEPTIONS
2068
        if constexpr (std::is_nothrow_constructible_v<T, Value&&>) {
2069
            this->destroy_unexpected();
2070
            this->construct(std::forward<Value>(val));
2071
        }
2072
        else {
2073
            auto tmp = std::move(this->get_unexpected());
2074
            this->destroy_unexpected();
2075
2076
            try {
2077
                this->construct(std::forward<Value>(val));
2078
            }
2079
            catch (...) {
2080
                this->construct_unexpected(std::move(tmp));
2081
            }
2082
        }
2083
#else
2084
        this->destroy_unexpected();
2085
        this->construct(std::forward<Value>(val));
2086
#endif
2087
    }
2088
2089
    template <typename Unexpected>
2090
    void assign_unexpected(Unexpected&& unex) noexcept(
2091
        std::is_nothrow_constructible_v<E, Unexpected&&> &&
2092
        std::is_nothrow_assignable_v<E, Unexpected&&>)
2093
    {
2094
        if (!has_value()) {
2095
            this->get_unexpected() = std::forward<Unexpected>(unex);
2096
            return;
2097
        }
2098
2099
        this->destroy_value();
2100
        this->construct_unexpected(std::forward<Unexpected>(unex));
2101
    }
2102
};
2103
2104
/////////////////////////////////////////////////////////////////
2105
// <ranges> implementation
2106
/////////////////////////////////////////////////////////////////
2107
2108
/**
2109
 * Contains a very minimal `<ranges>` implementation.
2110
 *
2111
 * This is a heavily stripped-down and adapted version of NanoRange:
2112
 * https://github.com/tcbrindle/NanoRange.
2113
 *
2114
 * NanoRange is provided under the Boost license.
2115
 * Copyright (c) 2018 Tristan Brindle (tcbrindle at gmail dot com)
2116
 */
2117
namespace ranges {
2118
2119
namespace detail {
2120
using namespace scn::detail;
2121
2122
template <typename T>
2123
constexpr auto decay_copy(T&& t) noexcept(
2124
    noexcept(static_cast<std::decay_t<T>>(SCN_FWD(t)))) -> std::decay_t<T>
2125
554k
{
2126
554k
    return SCN_FWD(t);
2127
554k
}
_ZN3scn2v46ranges6detail10decay_copyIPKcEEu7__decayIT_EOS6_
Line
Count
Source
2125
139k
{
2126
139k
    return SCN_FWD(t);
2127
139k
}
_ZN3scn2v46ranges6detail10decay_copyIPKwEEu7__decayIT_EOS6_
Line
Count
Source
2125
256k
{
2126
256k
    return SCN_FWD(t);
2127
256k
}
_ZN3scn2v46ranges6detail10decay_copyImEEu7__decayIT_EOS4_
Line
Count
Source
2125
151k
{
2126
151k
    return SCN_FWD(t);
2127
151k
}
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
_ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS8_EEEEu7__decayIT_EOSA_
Line
Count
Source
2125
4.68k
{
2126
4.68k
    return SCN_FWD(t);
2127
4.68k
}
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIcE16forward_iteratorEEEu7__decayIT_EOS8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEu7__decayIT_EOSD_
_ZN3scn2v46ranges6detail10decay_copyINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS8_EEEEu7__decayIT_EOSA_
Line
Count
Source
2125
1.79k
{
2126
1.79k
    return SCN_FWD(t);
2127
1.79k
}
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS0_6detail17basic_scan_bufferIwE16forward_iteratorEEEu7__decayIT_EOS8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINS1_18default_sentinel_tEEEu7__decayIT_EOS5_
Unexecuted instantiation: _ZN3scn2v46ranges6detail10decay_copyINSt3__111__wrap_iterIPcEEEEu7__decayIT_EOS8_
2128
2129
template <bool>
2130
struct conditional {
2131
    template <typename T, typename>
2132
    using type = T;
2133
};
2134
2135
template <>
2136
struct conditional<false> {
2137
    template <typename, typename U>
2138
    using type = U;
2139
};
2140
2141
template <bool B, typename T, typename U>
2142
using conditional_t = typename conditional<B>::template type<T, U>;
2143
2144
template <template <class...> class AliasT, typename... Args>
2145
auto exists_helper(long) -> std::false_type;
2146
2147
template <template <class...> class AliasT,
2148
          typename... Args,
2149
          typename = AliasT<Args...>>
2150
auto exists_helper(int) -> std::true_type;
2151
2152
template <template <class...> class AliasT, typename... Args>
2153
inline constexpr bool exists_v =
2154
    decltype(exists_helper<AliasT, Args...>(0))::value;
2155
2156
template <typename, typename...>
2157
auto test_requires_fn(long) -> std::false_type;
2158
2159
template <typename R,
2160
          typename... Args,
2161
          typename = decltype(&R::template requires_<Args...>)>
2162
auto test_requires_fn(int) -> std::true_type;
2163
2164
template <typename R, typename... Args>
2165
inline constexpr bool requires_ =
2166
    decltype(test_requires_fn<R, Args...>(0))::value;
2167
2168
template <bool Expr>
2169
using requires_expr = std::enable_if_t<Expr, int>;
2170
}  // namespace detail
2171
2172
template <typename>
2173
inline constexpr bool enable_borrowed_range = false;
2174
2175
namespace detail {
2176
template <typename T>
2177
inline constexpr bool boolean_testable_impl = std::is_convertible_v<T, bool>;
2178
2179
struct boolean_testable_concept {
2180
    template <typename T>
2181
    auto requires_(T&& t)
2182
        -> requires_expr<boolean_testable_impl<decltype(!std::forward<T>(t))>>;
2183
};
2184
2185
template <typename T>
2186
inline constexpr bool boolean_testable =
2187
    boolean_testable_impl<T> && detail::requires_<boolean_testable_concept, T>;
2188
}  // namespace detail
2189
2190
namespace detail {
2191
struct weakly_equality_comparable_with_concept {
2192
    template <typename T, typename U>
2193
    auto requires_(const std::remove_reference_t<T>& t,
2194
                   const std::remove_reference_t<U>& u)
2195
        -> decltype(requires_expr<boolean_testable<decltype(t == u)>>{},
2196
                    requires_expr<boolean_testable<decltype(t != u)>>{},
2197
                    requires_expr<boolean_testable<decltype(u == t)>>{},
2198
                    requires_expr<boolean_testable<decltype(u != t)>>{});
2199
};
2200
2201
template <typename T, typename U>
2202
inline constexpr bool weakly_equality_comparable_with =
2203
    requires_<weakly_equality_comparable_with_concept, T, U>;
2204
}  // namespace detail
2205
2206
template <typename T>
2207
inline constexpr bool equality_comparable =
2208
    detail::weakly_equality_comparable_with<T, T>;
2209
2210
namespace detail {
2211
struct equality_comparable_with_concept {
2212
    template <typename, typename>
2213
    static auto test(long) -> std::false_type;
2214
2215
    template <typename T, typename U>
2216
    static auto test(int)
2217
        -> std::enable_if_t<equality_comparable<T> && equality_comparable<U> &&
2218
#if 0
2219
            common_reference_with<const std::remove_reference_t<T>&,
2220
                                  const std::remove_reference_t<U>&> &&
2221
            equality_comparable<
2222
                common_reference_t<const std::remove_reference_t<T>&,
2223
                                   const std::remove_reference_t<U>&>> &&
2224
#endif
2225
                                weakly_equality_comparable_with<T, U>,
2226
                            std::true_type>;
2227
};
2228
}  // namespace detail
2229
2230
template <typename T, typename U>
2231
inline constexpr bool equality_comparable_with =
2232
    decltype(detail::equality_comparable_with_concept::test<T, U>(0))::value;
2233
2234
namespace detail {
2235
struct partially_ordered_with_concept {
2236
    template <typename T, typename U>
2237
    auto requires_(const std::remove_reference_t<T>& t,
2238
                   const std::remove_reference_t<U>& u)
2239
        -> decltype(requires_expr<boolean_testable<decltype(t < u)>>{},
2240
                    requires_expr<boolean_testable<decltype(t > u)>>{},
2241
                    requires_expr<boolean_testable<decltype(t <= u)>>{},
2242
                    requires_expr<boolean_testable<decltype(t >= u)>>{},
2243
                    requires_expr<boolean_testable<decltype(u < t)>>{},
2244
                    requires_expr<boolean_testable<decltype(u > t)>>{},
2245
                    requires_expr<boolean_testable<decltype(u <= t)>>{},
2246
                    requires_expr<boolean_testable<decltype(u >= t)>>{});
2247
};
2248
2249
template <typename T, typename U>
2250
inline constexpr bool partially_ordered_with =
2251
    detail::requires_<detail::partially_ordered_with_concept, T, U>;
2252
}  // namespace detail
2253
2254
template <typename T>
2255
inline constexpr bool totally_ordered =
2256
    equality_comparable<T> && detail::partially_ordered_with<T, T>;
2257
2258
namespace detail {
2259
struct totally_ordered_with_concept {
2260
    template <typename, typename>
2261
    static auto test(long) -> std::false_type;
2262
2263
    template <typename T, typename U>
2264
    static auto test(int)
2265
        -> std::enable_if_t<totally_ordered<T> && totally_ordered<U> &&
2266
                                equality_comparable_with<T, U> &&
2267
#if 0
2268
                                totally_ordered<common_reference_t<
2269
                                    const std::remove_reference_t<T>&,
2270
                                    const std::remove_reference_t<U>&>> &&
2271
#endif
2272
                                partially_ordered_with<T, U>,
2273
                            std::true_type>;
2274
};
2275
}  // namespace detail
2276
2277
template <typename T, typename U>
2278
inline constexpr bool totally_ordered_with =
2279
    decltype(detail::totally_ordered_with_concept::test<T, U>(0))::value;
2280
2281
namespace detail {
2282
struct movable_concept {
2283
    template <typename T>
2284
    static auto test(long) -> std::false_type;
2285
2286
    template <typename T>
2287
    static auto test(int) -> std::enable_if_t<
2288
        std::is_object_v<T> && std::is_move_constructible_v<T> &&
2289
            std::is_move_assignable_v<T> && std::is_swappable_v<T>,
2290
        std::true_type>;
2291
};
2292
}  // namespace detail
2293
2294
template <typename T>
2295
inline constexpr bool movable =
2296
    decltype(detail::movable_concept::test<T>(0))::value;
2297
2298
namespace detail {
2299
struct copyable_concept {
2300
    template <typename>
2301
    static auto test(long) -> std::false_type;
2302
2303
    template <typename T>
2304
    static auto test(int)
2305
        -> std::enable_if_t<std::is_copy_constructible_v<T> && movable<T> &&
2306
                                std::is_copy_assignable_v<T>,
2307
                            std::true_type>;
2308
};
2309
}  // namespace detail
2310
2311
template <typename T>
2312
inline constexpr bool copyable =
2313
    decltype(detail::copyable_concept::test<T>(0))::value;
2314
2315
template <typename T>
2316
inline constexpr bool semiregular =
2317
    copyable<T> && std::is_default_constructible_v<T>;
2318
2319
template <typename T>
2320
inline constexpr bool regular = semiregular<T> && equality_comparable<T>;
2321
2322
template <typename>
2323
struct incrementable_traits;
2324
2325
namespace detail {
2326
struct empty {};
2327
2328
template <typename T>
2329
struct with_difference_type {
2330
    using difference_type = T;
2331
};
2332
2333
template <typename, typename = void>
2334
struct incrementable_traits_helper {};
2335
2336
// Workaround for GCC silliness: void* has no difference_type
2337
// FIXME: This is required to stop WeaklyIncrementable<void*> being a hard
2338
// error Can we formulate the concept differently to avoid the need for this
2339
// hack?
2340
template <>
2341
struct incrementable_traits_helper<void*> {};
2342
2343
template <typename T>
2344
struct incrementable_traits_helper<T*>
2345
    : detail::conditional_t<std::is_object_v<T>,
2346
                            with_difference_type<std::ptrdiff_t>,
2347
                            empty> {};
2348
2349
template <class I>
2350
struct incrementable_traits_helper<const I>
2351
    : incrementable_traits<std::decay_t<I>> {};
2352
2353
template <typename, typename = void>
2354
struct has_member_difference_type : std::false_type {};
2355
2356
template <typename T>
2357
struct has_member_difference_type<T, std::void_t<typename T::difference_type>>
2358
    : std::true_type {};
2359
2360
template <typename T>
2361
constexpr bool has_member_difference_type_v =
2362
    has_member_difference_type<T>::value;
2363
2364
template <typename T>
2365
struct incrementable_traits_helper<
2366
    T,
2367
    std::enable_if_t<has_member_difference_type_v<T>>> {
2368
    using difference_type = typename T::difference_type;
2369
};
2370
2371
template <typename T, typename = void>
2372
struct subtraction_result_type {
2373
    using type = void;
2374
};
2375
template <typename T>
2376
struct subtraction_result_type<
2377
    T,
2378
    std::void_t<decltype(std::declval<const T&>() -
2379
                         std::declval<const T&>())>> {
2380
    using type = decltype(std::declval<const T&>() - std::declval<const T&>());
2381
};
2382
2383
template <typename T>
2384
inline constexpr bool enable_incrtraits_subtractable =
2385
    !std::is_pointer_v<T> && !has_member_difference_type_v<T> &&
2386
    std::is_integral_v<typename subtraction_result_type<T>::type>;
2387
2388
template <typename T>
2389
struct incrementable_traits_helper<
2390
    T,
2391
    std::enable_if_t<enable_incrtraits_subtractable<T>>>
2392
    : with_difference_type<
2393
          std::make_signed_t<typename subtraction_result_type<T>::type>> {};
2394
}  // namespace detail
2395
2396
template <typename T>
2397
struct incrementable_traits : detail::incrementable_traits_helper<T> {};
2398
2399
template <typename T>
2400
using iter_difference_t = typename incrementable_traits<T>::difference_type;
2401
2402
template <typename>
2403
struct readable_traits;
2404
2405
namespace detail {
2406
template <typename T>
2407
struct with_value_type {
2408
    using value_type = T;
2409
};
2410
2411
template <typename, typename = void>
2412
struct readable_traits_helper {};
2413
2414
template <typename T>
2415
struct readable_traits_helper<T*>
2416
    : detail::conditional_t<std::is_object_v<T>,
2417
                            with_value_type<std::remove_cv_t<T>>,
2418
                            empty> {};
2419
2420
template <typename I>
2421
struct readable_traits_helper<I, std::enable_if_t<std::is_array_v<I>>>
2422
    : readable_traits<std::decay_t<I>> {};
2423
2424
template <typename I>
2425
struct readable_traits_helper<const I, std::enable_if_t<!std::is_array_v<I>>>
2426
    : readable_traits<std::decay_t<I>> {};
2427
2428
template <typename T, typename V = typename T::value_type>
2429
struct member_value_type
2430
    : detail::conditional_t<std::is_object_v<V>, with_value_type<V>, empty> {};
2431
2432
template <typename T, typename E = typename T::element_type>
2433
struct member_element_type
2434
    : detail::conditional_t<std::is_object_v<E>,
2435
                            with_value_type<std::remove_cv_t<E>>,
2436
                            empty> {};
2437
2438
template <typename T>
2439
using member_value_type_t = typename T::value_type;
2440
2441
template <typename T>
2442
constexpr bool has_member_value_type_v = exists_v<member_value_type_t, T>;
2443
2444
template <typename T>
2445
using member_element_type_t = typename T::element_type;
2446
2447
template <typename T>
2448
constexpr bool has_member_element_type_v = exists_v<member_element_type_t, T>;
2449
2450
template <typename T>
2451
struct readable_traits_helper<T,
2452
                              std::enable_if_t<has_member_value_type_v<T> &&
2453
                                               !has_member_element_type_v<T>>>
2454
    : member_value_type<T> {};
2455
2456
template <typename T>
2457
struct readable_traits_helper<T,
2458
                              std::enable_if_t<has_member_element_type_v<T> &&
2459
                                               !has_member_value_type_v<T>>>
2460
    : member_element_type<T> {};
2461
2462
// A type which has both value_type and element_type members must specialise
2463
// readable_traits to tell us which one to prefer -- see
2464
// https://github.com/ericniebler/stl2/issues/562
2465
template <typename T>
2466
struct readable_traits_helper<T,
2467
                              std::enable_if_t<has_member_element_type_v<T> &&
2468
                                               has_member_value_type_v<T>>> {};
2469
}  // namespace detail
2470
2471
template <typename T>
2472
struct readable_traits : detail::readable_traits_helper<T> {};
2473
2474
template <typename T>
2475
using iter_value_t = typename readable_traits<T>::value_type;
2476
2477
namespace detail {
2478
template <typename T>
2479
using with_reference = T&;
2480
2481
struct can_reference_concept {
2482
    template <typename T>
2483
    auto requires_() -> with_reference<T>;
2484
};
2485
2486
template <typename T>
2487
inline constexpr bool can_reference =
2488
    detail::requires_<can_reference_concept, T>;
2489
2490
struct dereferencable_concept {
2491
    template <typename T>
2492
    auto requires_(T& t)
2493
        -> decltype(requires_expr<can_reference<decltype(*t)>>{});
2494
};
2495
2496
template <typename T>
2497
inline constexpr bool dereferenceable = requires_<dereferencable_concept, T>;
2498
2499
// GCC and Clang allow dereferencing void* as an extension.
2500
// Let's kill that off now.
2501
2502
template <>
2503
inline constexpr bool dereferenceable<void*> = false;
2504
}  // namespace detail
2505
2506
using std::bidirectional_iterator_tag;
2507
using std::forward_iterator_tag;
2508
using std::input_iterator_tag;
2509
using std::output_iterator_tag;
2510
using std::random_access_iterator_tag;
2511
2512
#if SCN_STD >= SCN_STD_20 && defined(__cpp_lib_ranges) && \
2513
    __cpp_lib_ranges >= 201911L
2514
using std::contiguous_iterator_tag;
2515
#else
2516
struct contiguous_iterator_tag : random_access_iterator_tag {};
2517
#endif
2518
2519
template <typename T>
2520
struct iterator_category;
2521
2522
namespace detail {
2523
template <typename T, typename = void>
2524
struct iterator_category_ {};
2525
template <typename T>
2526
struct iterator_category_<T*>
2527
    : std::enable_if<std::is_object_v<T>, contiguous_iterator_tag> {};
2528
template <typename T>
2529
struct iterator_category_<const T> : iterator_category<T> {};
2530
template <typename T>
2531
struct iterator_category_<T, std::void_t<typename T::iterator_category>> {
2532
    using type = typename T::iterator_category;
2533
};
2534
}  // namespace detail
2535
2536
template <typename T>
2537
struct iterator_category : detail::iterator_category_<T> {};
2538
template <typename T>
2539
using iterator_category_t = typename iterator_category<T>::type;
2540
2541
namespace detail {
2542
2543
template <typename T, typename = void>
2544
struct legacy_iterator_category : iterator_category<T> {};
2545
2546
template <typename T>
2547
struct legacy_iterator_category<
2548
    T,
2549
    std::enable_if_t<
2550
        std::is_same_v<iterator_category_t<T>, contiguous_iterator_tag>>> {
2551
    using type = random_access_iterator_tag;
2552
};
2553
2554
template <typename T>
2555
using legacy_iterator_category_t = typename legacy_iterator_category<T>::type;
2556
2557
}  // namespace detail
2558
2559
template <typename T>
2560
using iter_reference_t =
2561
    std::enable_if_t<detail::dereferenceable<T>, decltype(*std::declval<T&>())>;
2562
2563
namespace detail {
2564
2565
struct readable_concept {
2566
    template <typename In>
2567
    auto requires_() -> decltype(std::declval<iter_value_t<In>>(),
2568
                                 std::declval<iter_reference_t<In>>());
2569
    // std::declval<iter_rvalue_reference_t<In>>());
2570
2571
    template <typename>
2572
    static auto test(long) -> std::false_type;
2573
2574
    template <typename In>
2575
    static auto test(int)
2576
        -> std::enable_if_t<detail::requires_<readable_concept, In>,
2577
#if 0
2578
            common_reference_with<iter_reference_t<In>&&, iter_value_t<In>&> &&
2579
            common_reference_with<iter_reference_t<In>&&,
2580
                                  iter_rvalue_reference_t<In>&&> &&
2581
            common_reference_with<iter_rvalue_reference_t<In>&&,
2582
                                  const iter_value_t<In>&>,
2583
#endif
2584
                            std::true_type>;
2585
};
2586
2587
}  // namespace detail
2588
2589
template <typename In>
2590
inline constexpr bool readable =
2591
    decltype(detail::readable_concept::test<In>(0))::value;
2592
2593
namespace detail {
2594
2595
struct writable_concept {
2596
    template <typename Out, typename T>
2597
    auto requires_(Out&& o, T&& t)
2598
        -> decltype(*o = std::forward<T>(t),
2599
                    *std::forward<Out>(o) = std::forward<T>(t),
2600
                    const_cast<const iter_reference_t<Out>&&>(*o) =
2601
                        std::forward<T>(t),
2602
                    const_cast<const iter_reference_t<Out>&&>(
2603
                        *std::forward<Out>(o)) = std::forward<T>(t));
2604
};
2605
2606
}  // namespace detail
2607
2608
template <typename Out, typename T>
2609
inline constexpr bool writable =
2610
    detail::requires_<detail::writable_concept, Out, T>;
2611
2612
namespace detail {
2613
2614
template <typename T>
2615
inline constexpr bool is_integer_like = std::is_integral_v<T>;
2616
2617
template <typename T>
2618
inline constexpr bool is_signed_integer_like =
2619
    std::is_integral_v<T> && std::is_signed_v<T>;
2620
2621
struct weakly_incrementable_concept {
2622
    template <typename I>
2623
    auto requires_(I i)
2624
        -> decltype(std::declval<iter_difference_t<I>>(),
2625
                    requires_expr<
2626
                        is_signed_integer_like<iter_difference_t<I>>>{},
2627
                    requires_expr<std::is_same_v<decltype(++i), I&>>{},
2628
                    i++);
2629
};
2630
2631
}  // namespace detail
2632
2633
template <typename I>
2634
inline constexpr bool weakly_incrementable =
2635
    std::is_default_constructible_v<I> && movable<I> &&
2636
    detail::requires_<detail::weakly_incrementable_concept, I>;
2637
2638
namespace detail {
2639
2640
struct incrementable_concept {
2641
    template <typename I>
2642
    auto requires_(I i)
2643
        -> decltype(requires_expr<std::is_same_v<decltype(i++), I>>{});
2644
};
2645
2646
}  // namespace detail
2647
2648
template <typename I>
2649
inline constexpr bool incrementable =
2650
    regular<I> && weakly_incrementable<I> &&
2651
    detail::requires_<detail::incrementable_concept, I>;
2652
2653
namespace detail {
2654
2655
struct input_or_output_iterator_concept {
2656
    template <typename I>
2657
    auto requires_(I i)
2658
        -> decltype(requires_expr<can_reference<decltype(*i)>>{});
2659
};
2660
2661
}  // namespace detail
2662
2663
template <typename I>
2664
inline constexpr bool input_or_output_iterator =
2665
    detail::requires_<detail::input_or_output_iterator_concept, I> &&
2666
    weakly_incrementable<I>;
2667
2668
template <typename S, typename I>
2669
inline constexpr bool sentinel_for =
2670
    semiregular<S> && input_or_output_iterator<I> &&
2671
    detail::weakly_equality_comparable_with<S, I>;
2672
2673
template <typename S, typename I>
2674
inline constexpr bool disable_sized_sentinel = false;
2675
2676
namespace detail {
2677
2678
struct sized_sentinel_for_concept {
2679
    template <typename S, typename I>
2680
    auto requires_(const S& s, const I& i)
2681
        -> decltype(requires_expr<std::is_same_v<decltype(s - i),
2682
                                                 iter_difference_t<I>>>{},
2683
                    requires_expr<std::is_same_v<decltype(i - s),
2684
                                                 iter_difference_t<I>>>{});
2685
};
2686
2687
}  // namespace detail
2688
2689
template <typename S, typename I>
2690
inline constexpr bool sized_sentinel_for =
2691
    sentinel_for<S, I> &&
2692
    !disable_sized_sentinel<std::remove_cv_t<S>, std::remove_cv_t<I>> &&
2693
    detail::requires_<detail::sized_sentinel_for_concept, S, I>;
2694
2695
// This is a hack, but I'm fed up with my tests breaking because GCC
2696
// has a silly extension
2697
template <typename S>
2698
inline constexpr bool sized_sentinel_for<S, void*> = false;
2699
2700
template <typename I>
2701
inline constexpr bool sized_sentinel_for<void*, I> = false;
2702
2703
template <>
2704
inline constexpr bool sized_sentinel_for<void*, void*> = false;
2705
2706
namespace detail {
2707
2708
// FIXME: Use ITER_CONCEPT, not iterator_category_t
2709
struct input_iterator_concept {
2710
    template <typename I>
2711
    auto requires_() -> iterator_category_t<I>;
2712
2713
    template <typename>
2714
    static auto test(long) -> std::false_type;
2715
2716
    template <typename I>
2717
    static auto test(int) -> std::enable_if_t<
2718
        input_or_output_iterator<I> && readable<I> &&
2719
            detail::requires_<input_iterator_concept, I> &&
2720
            std::is_base_of_v<input_iterator_tag, iterator_category_t<I>>,
2721
        std::true_type>;
2722
};
2723
2724
}  // namespace detail
2725
2726
template <typename I>
2727
inline constexpr bool input_iterator =
2728
    decltype(detail::input_iterator_concept::test<I>(0))::value;
2729
2730
namespace detail {
2731
2732
struct output_iterator_concept {
2733
    template <typename I, typename T>
2734
    auto requires_(I i, T&& t) -> decltype(*i++ = std::forward<T>(t));
2735
};
2736
2737
}  // namespace detail
2738
2739
template <typename I, typename T>
2740
inline constexpr bool output_iterator =
2741
    input_or_output_iterator<I> && writable<I, T> &&
2742
    detail::requires_<detail::output_iterator_concept, I, T>;
2743
2744
namespace detail {
2745
2746
struct forward_iterator_concept {
2747
    template <typename>
2748
    static auto test(long) -> std::false_type;
2749
2750
    template <typename I>
2751
    static auto test(int) -> std::enable_if_t<
2752
        input_iterator<I> &&
2753
            std::is_base_of_v<forward_iterator_tag, iterator_category_t<I>> &&
2754
            incrementable<I> && sentinel_for<I, I>,
2755
        std::true_type>;
2756
};
2757
2758
}  // namespace detail
2759
2760
template <typename I>
2761
inline constexpr bool forward_iterator =
2762
    decltype(detail::forward_iterator_concept::test<I>(0))::value;
2763
2764
namespace detail {
2765
2766
struct bidirectional_iterator_concept {
2767
    template <typename I>
2768
    auto requires_(I i)
2769
        -> decltype(requires_expr<std::is_same_v<decltype(--i), I&>>{},
2770
                    requires_expr<std::is_same_v<decltype(i--), I>>{});
2771
2772
    template <typename>
2773
    static auto test(long) -> std::false_type;
2774
2775
    template <typename I>
2776
    static auto test(int) -> std::enable_if_t<
2777
        forward_iterator<I> &&
2778
            std::is_base_of_v<bidirectional_iterator_tag,
2779
                              iterator_category_t<I>> &&
2780
            detail::requires_<bidirectional_iterator_concept, I>,
2781
        std::true_type>;
2782
};
2783
2784
}  // namespace detail
2785
2786
template <typename I>
2787
inline constexpr bool bidirectional_iterator =
2788
    decltype(detail::bidirectional_iterator_concept::test<I>(0))::value;
2789
2790
namespace detail {
2791
2792
struct random_access_iterator_concept {
2793
    template <typename>
2794
    static auto test(long) -> std::false_type;
2795
2796
    template <typename I>
2797
    static auto test(int) -> std::enable_if_t<
2798
        bidirectional_iterator<I> &&
2799
            std::is_base_of_v<random_access_iterator_tag,
2800
                              iterator_category_t<I>> &&
2801
            totally_ordered<I> && sized_sentinel_for<I, I> &&
2802
            detail::requires_<random_access_iterator_concept, I>,
2803
        std::true_type>;
2804
2805
    template <typename I>
2806
    auto requires_(I i, const I j, const iter_difference_t<I> n)
2807
        -> decltype(requires_expr<std::is_same_v<decltype(i += n), I&>>{},
2808
                    requires_expr<std::is_same_v<decltype(j + n), I>>{},
2809
#ifndef _MSC_VER
2810
                    requires_expr<std::is_same_v<decltype(n + j),
2811
                                                 I>>{},  // FIXME: MSVC doesn't
2812
                                                         // like this when I =
2813
                                                         // int*
2814
#endif
2815
                    requires_expr<std::is_same_v<decltype(i -= n), I&>>{},
2816
                    requires_expr<std::is_same_v<decltype(j - n), I>>{},
2817
                    requires_expr<
2818
                        std::is_same_v<decltype(j[n]), iter_reference_t<I>>>{});
2819
};
2820
2821
}  // namespace detail
2822
2823
template <typename I>
2824
inline constexpr bool random_access_iterator =
2825
    decltype(detail::random_access_iterator_concept::test<I>(0))::value;
2826
2827
namespace detail {
2828
2829
struct contiguous_iterator_concept {
2830
    template <typename>
2831
    static auto test(long) -> std::false_type;
2832
2833
    template <typename I>
2834
    static auto test(int) -> std::enable_if_t<
2835
        random_access_iterator<I> &&
2836
            /*std::is_base_of_v<contiguous_iterator_tag,
2837
                              iterator_category_t<I>> &&*/
2838
            detail::can_make_address_from_iterator<I> &&
2839
            std::is_lvalue_reference_v<iter_reference_t<I>> &&
2840
            std::is_same_v<iter_value_t<I>,
2841
                           remove_cvref_t<iter_reference_t<I>>>,
2842
        std::true_type>;
2843
};
2844
2845
}  // namespace detail
2846
2847
template <typename I>
2848
inline constexpr bool contiguous_iterator =
2849
    decltype(detail::contiguous_iterator_concept::test<I>(0))::value;
2850
2851
namespace detail::begin_ {
2852
2853
template <typename T>
2854
void begin(T&) = delete;
2855
template <typename T>
2856
void begin(const T&) = delete;
2857
2858
struct fn {
2859
private:
2860
    template <typename T,
2861
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2862
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2863
                  nullptr>
2864
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2865
2866
    template <typename T,
2867
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2868
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2869
        -> decltype(t + 0)
2870
    {
2871
        static_assert(ranges::input_or_output_iterator<decltype(t + 0)>);
2872
        return t + 0;
2873
    }
2874
2875
    template <typename T>
2876
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2877
        noexcept(decay_copy(SCN_FWD(t).begin())))
2878
        -> std::enable_if_t<
2879
            input_or_output_iterator<decltype(decay_copy(SCN_FWD(t).begin()))>,
2880
            decltype(decay_copy(SCN_FWD(t).begin()))>
2881
395k
    {
2882
395k
        return decay_copy(t.begin());
2883
395k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2881
2.23k
    {
2882
2.23k
        return decay_copy(t.begin());
2883
2.23k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2881
2.07k
    {
2882
2.07k
        return decay_copy(t.begin());
2883
2.07k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2881
2.16k
    {
2882
2.16k
        return decay_copy(t.begin());
2883
2.16k
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2881
135k
    {
2882
135k
        return decay_copy(t.begin());
2883
135k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2881
350
    {
2882
350
        return decay_copy(t.begin());
2883
350
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2881
812
    {
2882
812
        return decay_copy(t.begin());
2883
812
    }
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2881
252k
    {
2882
252k
        return decay_copy(t.begin());
2883
252k
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2881
170
    {
2882
170
        return decay_copy(t.begin());
2883
170
    }
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<input_or_output_iterator<decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).begin)()))>::type scn::v4::ranges::detail::begin_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&>(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, scn::v4::detail::priority_tag<1ul>)
2884
2885
    template <typename T>
2886
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
2887
        noexcept(decay_copy(begin(SCN_FWD(t)))))
2888
        -> std::enable_if_t<
2889
            input_or_output_iterator<decltype(decay_copy(begin(SCN_FWD(t))))>,
2890
            decltype(decay_copy(begin(SCN_FWD(t))))>
2891
    {
2892
        return decay_copy(begin(SCN_FWD(t)));
2893
    }
2894
2895
public:
2896
    template <typename T>
2897
    constexpr auto operator()(T&& t) const
2898
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2899
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2900
395k
    {
2901
395k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2902
395k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2900
2.23k
    {
2901
2.23k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2902
2.23k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2900
2.07k
    {
2901
2.07k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2902
2.07k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2900
2.16k
    {
2901
2.16k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2902
2.16k
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2900
135k
    {
2901
135k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2902
135k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2900
350
    {
2901
350
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2902
350
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2900
812
    {
2901
812
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2902
812
    }
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2900
252k
    {
2901
252k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2902
252k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS8_15take_width_viewINS7_ISE_SF_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v46ranges6detail6begin_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EENS8_15take_width_viewINS7_ISC_SC_EEE8sentinelILb1EEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2900
170
    {
2901
170
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2902
170
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6begin_2fnclIRKNS2_9subrange_8subrangeINSt3__111__wrap_iterIPcEESB_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
2903
};
2904
2905
}  // namespace detail::begin_
2906
2907
inline constexpr auto begin = detail::begin_::fn{};
2908
2909
namespace detail::end_ {
2910
2911
template <typename T>
2912
void end(T&) = delete;
2913
template <typename T>
2914
void end(const T&) = delete;
2915
2916
struct fn {
2917
private:
2918
    template <typename T,
2919
              std::enable_if_t<!std::is_lvalue_reference_v<T> &&
2920
                               !enable_borrowed_range<std::remove_cv_t<T>>>* =
2921
                  nullptr>
2922
    static constexpr void impl(T&&, priority_tag<3>) = delete;
2923
2924
    template <typename T,
2925
              std::enable_if_t<std::is_array_v<remove_cvref_t<T>>>* = nullptr>
2926
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept
2927
        -> decltype(t + std::extent_v<remove_cvref_t<T>>)
2928
    {
2929
        return t + std::extent_v<remove_cvref_t<T>>;
2930
    }
2931
2932
    template <typename T,
2933
              typename S = decltype(decay_copy(SCN_DECLVAL(T).end())),
2934
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2935
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
2936
        noexcept(decay_copy(SCN_FWD(t).end())))
2937
        -> std::enable_if_t<sentinel_for<S, I>,
2938
                            decltype(decay_copy(SCN_FWD(t).end()))>
2939
7.28k
    {
2940
7.28k
        return decay_copy(SCN_FWD(t).end());
2941
7.28k
    }
std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char const*, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2939
2.23k
    {
2940
2.23k
        return decay_copy(SCN_FWD(t).end());
2941
2.23k
    }
std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t const*, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2939
2.07k
    {
2940
2.07k
        return decay_copy(SCN_FWD(t).end());
2941
2.07k
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, char const*, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, wchar_t const*, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2939
2.16k
    {
2940
2.16k
        return decay_copy(SCN_FWD(t).end());
2941
2.16k
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<sentinel_for<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
2939
812
    {
2940
812
        return decay_copy(SCN_FWD(t).end());
2941
812
    }
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<char const*, char const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, char const*, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<wchar_t const*, wchar_t const*>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, wchar_t const*, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<sentinel_for<scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, decltype (decay_copy(((static_cast<decltype ({parm#1})>({parm#1})).end)()))>::type scn::v4::ranges::detail::end_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::ranges::default_sentinel_t, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&, scn::v4::detail::priority_tag<1ul>)
2942
2943
    template <typename T,
2944
              typename S = decltype(decay_copy(end(SCN_DECLVAL(T)))),
2945
              typename I = decltype(::scn::ranges::begin(SCN_DECLVAL(T)))>
2946
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
2947
        decay_copy(end(SCN_FWD(t))))) -> std::enable_if_t<sentinel_for<S, I>, S>
2948
    {
2949
        return decay_copy(end(SCN_FWD(t)));
2950
    }
2951
2952
public:
2953
    template <typename T>
2954
    constexpr auto operator()(T&& t) const
2955
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<3>{})))
2956
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<3>{}))
2957
7.28k
    {
2958
7.28k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2959
7.28k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2957
2.23k
    {
2958
2.23k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2959
2.23k
    }
_ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2957
2.07k
    {
2958
2.07k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2959
2.07k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2957
2.16k
    {
2958
2.16k
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2959
2.16k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESG_EEEEDTclsr2fnE4implscDtfp_Efp_tlNSB_12priority_tagILm3EEEEEEOT_
_ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwSC_EESD_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Line
Count
Source
2957
812
    {
2958
812
        return fn::impl(SCN_FWD(t), priority_tag<3>{});
2959
812
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINSt3__111__wrap_iterIPcEESB_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm3EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail4end_2fnclIRKNS2_9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS8_12priority_tagILm3EEEEEEOT_
2960
};
2961
2962
}  // namespace detail::end_
2963
2964
inline constexpr auto end = detail::end_::fn{};
2965
2966
namespace detail {
2967
struct range_concept {
2968
    template <typename T>
2969
    auto requires_(T& t) -> decltype(ranges::begin(t), ranges::end(t));
2970
};
2971
}  // namespace detail
2972
2973
template <typename T>
2974
inline constexpr bool range = detail::requires_<detail::range_concept, T>;
2975
2976
template <typename T>
2977
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
2978
2979
template <typename R>
2980
using sentinel_t =
2981
    std::enable_if_t<range<R>, decltype(ranges::end(std::declval<R&>()))>;
2982
2983
template <typename R>
2984
using range_difference_t =
2985
    std::enable_if_t<range<R>, iter_difference_t<iterator_t<R>>>;
2986
2987
template <typename R>
2988
using range_value_t = std::enable_if_t<range<R>, iter_value_t<iterator_t<R>>>;
2989
2990
template <typename R>
2991
using range_reference_t =
2992
    std::enable_if_t<range<R>, iter_reference_t<iterator_t<R>>>;
2993
2994
namespace detail {
2995
template <typename, typename = void>
2996
inline constexpr bool is_object_pointer_v = false;
2997
template <typename P>
2998
inline constexpr bool
2999
    is_object_pointer_v<P,
3000
                        std::enable_if_t<std::is_pointer_v<P> &&
3001
                                         std::is_object_v<iter_value_t<P>>>> =
3002
        true;
3003
3004
namespace data_ {
3005
3006
struct fn {
3007
private:
3008
    template <typename T,
3009
              typename D = decltype(decay_copy(SCN_DECLVAL(T&).data()))>
3010
    static constexpr auto impl(T& t, priority_tag<1>) noexcept(noexcept(
3011
        decay_copy(t.data()))) -> std::enable_if_t<is_object_pointer_v<D>, D>
3012
391k
    {
3013
391k
        return t.data();
3014
391k
    }
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char const*>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
3012
7.59k
    {
3013
7.59k
        return t.data();
3014
7.59k
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t const*>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, scn::v4::detail::priority_tag<1ul>)
std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
3012
131k
    {
3013
131k
        return t.data();
3014
131k
    }
std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&, scn::v4::detail::priority_tag<1ul>)
Line
Count
Source
3012
252k
    {
3013
252k
        return t.data();
3014
252k
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<char const*>, char const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const, char const*>(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&, scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<wchar_t const*>, wchar_t const*>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const, wchar_t const*>(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&, scn::v4::detail::priority_tag<1ul>)
3015
3016
    template <typename T>
3017
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
3018
        noexcept(scn::ranges::begin(SCN_FWD(t))))
3019
        -> std::enable_if_t<
3020
            is_object_pointer_v<decltype(scn::ranges::begin(SCN_FWD(t)))>,
3021
            decltype(scn::ranges::begin(SCN_FWD(t)))>
3022
0
    {
3023
0
        return scn::ranges::begin(SCN_FWD(t));
3024
0
    }
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&, scn::v4::detail::priority_tag<0ul>)
Unexecuted instantiation: std::__1::enable_if<is_object_pointer_v<decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>, decltype (scn::v4::ranges::begin(static_cast<decltype ({parm#1})>({parm#1})))>::type scn::v4::ranges::detail::data_::fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&, scn::v4::detail::priority_tag<0ul>)
3025
3026
public:
3027
    template <typename T>
3028
    constexpr auto operator()(T&& t) const
3029
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<1>{})))
3030
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<1>{}))
3031
391k
    {
3032
391k
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3033
391k
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
3031
7.59k
    {
3032
7.59k
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3033
7.59k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
_ZNK3scn2v46ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
3031
131k
    {
3032
131k
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3033
131k
    }
_ZNK3scn2v46ranges6detail5data_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Line
Count
Source
3031
252k
    {
3032
252k
        return fn::impl(SCN_FWD(t), priority_tag<1>{});
3033
252k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5data_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implscDtfp_Efp_tlNS0_6detail12priority_tagILm1EEEEEEOT_
3034
};
3035
3036
}  // namespace data_
3037
}  // namespace detail
3038
3039
inline constexpr auto data = detail::data_::fn{};
3040
3041
template <typename T>
3042
inline constexpr bool disable_sized_range = false;
3043
3044
namespace detail::size_ {
3045
3046
template <typename T>
3047
void size(T&&) = delete;
3048
template <typename T>
3049
void size(T&) = delete;
3050
3051
struct fn {
3052
private:
3053
    template <typename T, std::size_t N>
3054
    static constexpr std::size_t impl(const T (&&)[N], priority_tag<3>) noexcept
3055
    {
3056
        return N;
3057
    }
3058
3059
    template <typename T, std::size_t N>
3060
    static constexpr std::size_t impl(const T (&)[N], priority_tag<3>) noexcept
3061
    {
3062
        return N;
3063
    }
3064
3065
    template <typename T,
3066
              typename I = decltype(decay_copy(std::declval<T>().size()))>
3067
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
3068
        noexcept(decay_copy(SCN_FWD(t).size())))
3069
        -> std::enable_if_t<std::is_integral_v<I> &&
3070
                                !disable_sized_range<remove_cvref_t<T>>,
3071
                            I>
3072
151k
    {
3073
151k
        return decay_copy(SCN_FWD(t).size());
3074
151k
    }
_ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3072
88
    {
3073
88
        return decay_copy(SCN_FWD(t).size());
3074
88
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3072
94
    {
3073
94
        return decay_copy(SCN_FWD(t).size());
3074
94
    }
_ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESG_E4typeEOSH_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3072
16
    {
3073
16
        return decay_copy(SCN_FWD(t).size());
3074
16
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEmEENS6_9enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v46ranges6detail5size_2fn4implIRNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3072
50.5k
    {
3073
50.5k
        return decay_copy(SCN_FWD(t).size());
3074
50.5k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
_ZN3scn2v46ranges6detail5size_2fn4implIRNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESE_E4typeEOSF_NS0_6detail12priority_tagILm2EEE
Line
Count
Source
3072
101k
    {
3073
101k
        return decay_copy(SCN_FWD(t).size());
3074
101k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implINS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESD_E4typeEOSE_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKcS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46ranges6detail5size_2fn4implIRKNS2_9subrange_8subrangeIPKwS9_EEmEENSt3__19enable_ifIXaasr3stdE13is_integral_vIT0_Ent19disable_sized_rangeIu11__remove_cvIu20__remove_reference_tIT_EEEESF_E4typeEOSG_NS0_6detail12priority_tagILm2EEE
3075
3076
    template <typename T,
3077
              typename I = decltype(decay_copy(size(std::declval<T>())))>
3078
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
3079
        noexcept(decay_copy(size(SCN_FWD(t)))))
3080
        -> std::enable_if_t<std::is_integral_v<I> &&
3081
                                !disable_sized_range<remove_cvref_t<T>>,
3082
                            I>
3083
    {
3084
        return decay_copy(size(SCN_FWD(t)));
3085
    }
3086
3087
    template <typename T,
3088
              typename I = decltype(scn::ranges::begin(SCN_DECLVAL(T))),
3089
              typename S = decltype(scn::ranges::end(SCN_DECLVAL(T))),
3090
              typename D = decltype(static_cast<std::size_t>(SCN_DECLVAL(S) -
3091
                                                             SCN_DECLVAL(I)))>
3092
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(noexcept(
3093
        static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t))))
3094
        -> std::enable_if_t<!std::is_array_v<remove_cvref_t<T>> &&
3095
                                sized_sentinel_for<S, I> && forward_iterator<I>,
3096
                            D>
3097
    {
3098
        return static_cast<size_t>(scn::ranges::end(t) - scn::ranges::begin(t));
3099
    }
3100
3101
public:
3102
    template <typename T>
3103
    constexpr auto operator()(T&& t) const
3104
        noexcept(noexcept(fn::impl(std::forward<T>(t), priority_tag<3>{})))
3105
            -> decltype(fn::impl(std::forward<T>(t), priority_tag<3>{}))
3106
151k
    {
3107
151k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3108
151k
    }
_ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSE_
Line
Count
Source
3106
88
    {
3107
88
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3108
88
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
_ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Line
Count
Source
3106
94
    {
3107
94
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3108
94
    }
_ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSF_
Line
Count
Source
3106
16
    {
3107
16
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3108
16
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
_ZNK3scn2v46ranges6detail5size_2fnclIRNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Line
Count
Source
3106
50.5k
    {
3107
50.5k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3108
50.5k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
_ZNK3scn2v46ranges6detail5size_2fnclIRNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSC_
Line
Count
Source
3106
101k
    {
3107
101k
        return fn::impl(std::forward<T>(t), priority_tag<3>{});
3108
101k
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclINS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSB_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKcS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
Unexecuted instantiation: _ZNK3scn2v46ranges6detail5size_2fnclIRKNS2_9subrange_8subrangeIPKwS9_EEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EtlNS0_6detail12priority_tagILm3EEEEEEOSD_
3109
};
3110
3111
}  // namespace detail::size_
3112
3113
inline constexpr auto size = detail::size_::fn{};
3114
3115
namespace detail {
3116
namespace ssize_ {
3117
struct fn {
3118
private:
3119
    template <typename T>
3120
    using ssize_return_t = std::conditional_t<sizeof(range_difference_t<T>) <
3121
                                                  sizeof(std::ptrdiff_t),
3122
                                              std::ptrdiff_t,
3123
                                              range_difference_t<T>>;
3124
3125
    template <typename T>
3126
    static constexpr auto impl(T&& t) noexcept(
3127
        noexcept(ranges::size(std::forward<T>(t))))
3128
        -> decltype(ranges::size(std::forward<T>(t)), ssize_return_t<T>())
3129
198
    {
3130
198
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
3131
198
    }
_ZN3scn2v46ranges6detail6ssize_2fn4implIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISE_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSE_EEEEE15difference_typeEE4typeELm8EElSN_E4typeE_EEOSE_
Line
Count
Source
3129
88
    {
3130
88
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
3131
88
    }
_ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
Line
Count
Source
3129
94
    {
3130
94
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
3131
94
    }
_ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISF_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSF_EEEEE15difference_typeEE4typeELm8EElSO_E4typeE_EEOSF_
Line
Count
Source
3129
16
    {
3130
16
        return static_cast<ssize_return_t<T>>(ranges::size(std::forward<T>(t)));
3131
16
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail6ssize_2fn4implIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTcmclL_ZNS1_4sizeEEclsr3stdE7forwardIT_Efp_EEcvNS6_11conditionalIXltstNS6_9enable_ifIX5rangeISD_EENS1_20incrementable_traitsIDTclL_ZNS1_5beginEEclsr3stdE7declvalIRSD_EEEEE15difference_typeEE4typeELm8EElSM_E4typeE_EEOSD_
3132
3133
public:
3134
    template <typename T>
3135
    constexpr auto operator()(T&& t) const
3136
        noexcept(noexcept(fn::impl(std::forward<T>(t))))
3137
            -> decltype(fn::impl(std::forward<T>(t)))
3138
198
    {
3139
198
        return fn::impl(std::forward<T>(t));
3140
198
    }
_ZNK3scn2v46ranges6detail6ssize_2fnclIRNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSE_
Line
Count
Source
3138
88
    {
3139
88
        return fn::impl(std::forward<T>(t));
3140
88
    }
_ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIcNS6_11char_traitsIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
Line
Count
Source
3138
94
    {
3139
94
        return fn::impl(std::forward<T>(t));
3140
94
    }
_ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__112basic_stringIcNS6_11char_traitsIcEENS6_9allocatorIcEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSF_
Line
Count
Source
3138
16
    {
3139
16
        return fn::impl(std::forward<T>(t));
3140
16
    }
Unexecuted instantiation: _ZNK3scn2v46ranges6detail6ssize_2fnclIRKNSt3__117basic_string_viewIwNS6_11char_traitsIwEEEEEEDTclsr2fnE4implclsr3stdE7forwardIT_Efp_EEEOSD_
3141
};
3142
}  // namespace ssize_
3143
}  // namespace detail
3144
3145
inline constexpr auto ssize = detail::ssize_::fn{};
3146
3147
namespace detail::empty_ {
3148
struct fn {
3149
private:
3150
    template <typename T>
3151
    static constexpr auto impl(T&& t, priority_tag<2>) noexcept(
3152
        noexcept(static_cast<bool>(SCN_FWD(t).empty())))
3153
        -> decltype(static_cast<bool>(SCN_FWD(t).empty()))
3154
    {
3155
        return static_cast<bool>(SCN_FWD(t).empty());
3156
    }
3157
3158
    template <typename T>
3159
    static constexpr auto impl(T&& t, priority_tag<1>) noexcept(
3160
        noexcept(ranges::size(SCN_FWD(t)) == 0))
3161
        -> decltype(ranges::size(SCN_FWD(t)) == 0)
3162
    {
3163
        return ranges::size(SCN_FWD(t)) == 0;
3164
    }
3165
3166
    template <typename T,
3167
              typename I = decltype(ranges::begin(std::declval<T>()))>
3168
    static constexpr auto impl(T&& t, priority_tag<0>) noexcept(
3169
        noexcept(ranges::begin(t) == ranges::end(t)))
3170
        -> std::enable_if_t<forward_iterator<I>,
3171
                            decltype(ranges::begin(t) == ranges::end(t))>
3172
    {
3173
        return ranges::begin(t) == ranges::end(t);
3174
    }
3175
3176
public:
3177
    template <typename T>
3178
    constexpr auto operator()(T&& t) const
3179
        noexcept(noexcept(fn::impl(SCN_FWD(t), priority_tag<2>{})))
3180
            -> decltype(fn::impl(SCN_FWD(t), priority_tag<2>{}))
3181
    {
3182
        return fn::impl(SCN_FWD(t), priority_tag<2>{});
3183
    }
3184
};
3185
}  // namespace detail::empty_
3186
3187
inline constexpr auto empty = detail::empty_::fn{};
3188
3189
/**
3190
 * \see `std::ranges::borrowed_range`
3191
 */
3192
template <typename T>
3193
inline constexpr bool borrowed_range =
3194
    range<T> && (std::is_lvalue_reference_v<T> ||
3195
                 enable_borrowed_range<detail::remove_cvref_t<T>>);
3196
3197
namespace detail {
3198
struct sized_range_concept {
3199
    template <typename T>
3200
    auto requires_(T& t) -> decltype(ranges::size(t));
3201
};
3202
}  // namespace detail
3203
3204
template <typename T>
3205
inline constexpr bool sized_range =
3206
    range<T> && !disable_sized_range<detail::remove_cvref_t<T>> &&
3207
    detail::requires_<detail::sized_range_concept, T>;
3208
3209
namespace detail {
3210
struct output_range_concept {
3211
    template <typename, typename>
3212
    static auto test(long) -> std::false_type;
3213
3214
    template <typename R, typename T>
3215
    static auto test(int)
3216
        -> std::enable_if_t<range<R> && output_iterator<iterator_t<R>, T>,
3217
                            std::true_type>;
3218
};
3219
}  // namespace detail
3220
3221
template <typename R, typename T>
3222
inline constexpr bool output_range =
3223
    decltype(detail::output_range_concept::test<R, T>(0))::value;
3224
3225
namespace detail {
3226
struct input_range_concept {
3227
    template <typename>
3228
    static auto test(long) -> std::false_type;
3229
3230
    template <typename T>
3231
    static auto test(int)
3232
        -> std::enable_if_t<range<T> && input_iterator<iterator_t<T>>,
3233
                            std::true_type>;
3234
};
3235
}  // namespace detail
3236
3237
template <typename T>
3238
inline constexpr bool input_range =
3239
    decltype(detail::input_range_concept::test<T>(0))::value;
3240
3241
namespace detail {
3242
struct forward_range_concept {
3243
    template <typename>
3244
    static auto test(long) -> std::false_type;
3245
3246
    template <typename T>
3247
    static auto test(int)
3248
        -> std::enable_if_t<input_range<T> && forward_iterator<iterator_t<T>>,
3249
                            std::true_type>;
3250
};
3251
}  // namespace detail
3252
3253
template <typename T>
3254
inline constexpr bool forward_range =
3255
    decltype(detail::forward_range_concept::test<T>(0))::value;
3256
3257
namespace detail {
3258
struct bidirectional_range_concept {
3259
    template <typename>
3260
    static auto test(long) -> std::false_type;
3261
3262
    template <typename T>
3263
    static auto test(int)
3264
        -> std::enable_if_t<forward_range<T> &&
3265
                                bidirectional_iterator<iterator_t<T>>,
3266
                            std::true_type>;
3267
};
3268
}  // namespace detail
3269
3270
template <typename T>
3271
inline constexpr bool bidirectional_range =
3272
    decltype(detail::bidirectional_range_concept::test<T>(0))::value;
3273
3274
namespace detail {
3275
struct random_access_range_concept {
3276
    template <typename>
3277
    static auto test(long) -> std::false_type;
3278
3279
    template <typename T>
3280
    static auto test(int)
3281
        -> std::enable_if_t<bidirectional_range<T> &&
3282
                                random_access_iterator<iterator_t<T>>,
3283
                            std::true_type>;
3284
};
3285
}  // namespace detail
3286
3287
template <typename T>
3288
inline constexpr bool random_access_range =
3289
    decltype(detail::random_access_range_concept::test<T>(0))::value;
3290
3291
namespace detail {
3292
// FIXME: Not to spec
3293
// We only require random_access_iterator, not contiguous_iterator
3294
// This is so that vector::iterator, string::iterator etc can model
3295
// contiguous_range.
3296
// If we do range-v3-style deep integration with iterator_traits then
3297
// this could be fixed
3298
struct contiguous_range_concept {
3299
    template <typename>
3300
    static auto test(long) -> std::false_type;
3301
3302
    template <typename T>
3303
    static auto test(int) -> std::enable_if_t<
3304
        random_access_range<T> && /* contiguous_iterator<iterator_t<T>>
3305
                                   * &&
3306
                                   */
3307
            detail::requires_<contiguous_range_concept, T>,
3308
        std::true_type>;
3309
3310
    template <typename T>
3311
    auto requires_(T& t)
3312
        -> decltype(requires_expr<std::is_same_v<
3313
                        decltype(ranges::data(t)),
3314
                        std::add_pointer_t<range_reference_t<T>>>>{});
3315
};
3316
}  // namespace detail
3317
3318
template <typename R>
3319
inline constexpr bool contiguous_range =
3320
    decltype(detail::contiguous_range_concept::test<R>(0))::value;
3321
3322
namespace detail {
3323
struct common_range_concept {
3324
    template <typename>
3325
    static auto test(long) -> std::false_type;
3326
3327
    template <typename T>
3328
    static auto test(int)
3329
        -> std::enable_if_t<range<T> &&
3330
                                std::is_same_v<iterator_t<T>, sentinel_t<T>>,
3331
                            std::true_type>;
3332
};
3333
}  // namespace detail
3334
3335
template <typename T>
3336
inline constexpr bool common_range =
3337
    decltype(detail::common_range_concept::test<T>(0))::value;
3338
3339
/**
3340
 * \see `std::ranges::dangling`
3341
 */
3342
struct dangling {
3343
    constexpr dangling() noexcept = default;
3344
3345
    template <typename... Args>
3346
    constexpr dangling(Args&&...) noexcept
3347
    {
3348
    }
3349
};
3350
3351
/**
3352
 * \see `std::ranges::borrowed_iterator_t`
3353
 */
3354
template <typename R>
3355
using borrowed_iterator_t =
3356
    std::conditional_t<borrowed_range<R>, iterator_t<R>, dangling>;
3357
3358
template <typename D>
3359
class view_interface {
3360
    static_assert(std::is_class<D>::value, "");
3361
    static_assert(std::is_same_v<D, std::remove_cv_t<D>>, "");
3362
3363
private:
3364
    constexpr D& derived() noexcept
3365
387k
    {
3366
387k
        return static_cast<D&>(*this);
3367
387k
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::derived()
Line
Count
Source
3365
135k
    {
3366
135k
        return static_cast<D&>(*this);
3367
135k
    }
scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived()
Line
Count
Source
3365
252k
    {
3366
252k
        return static_cast<D&>(*this);
3367
252k
    }
3368
3369
    constexpr const D& derived() const noexcept
3370
0
    {
3371
0
        return static_cast<const D&>(*this);
3372
0
    }
Unexecuted instantiation: scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::derived() const
Unexecuted instantiation: scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::derived() const
3373
3374
public:
3375
    template <typename R = D>
3376
    [[nodiscard]] constexpr auto empty()
3377
        -> std::enable_if_t<forward_range<R>, bool>
3378
    {
3379
        return ranges::begin(derived()) == ranges::end(derived());
3380
    }
3381
3382
    template <typename R = D>
3383
    [[nodiscard]] constexpr auto empty() const
3384
        -> std::enable_if_t<forward_range<const R>, bool>
3385
    {
3386
        return ranges::begin(derived()) == ranges::end(derived());
3387
    }
3388
3389
    template <typename R = D,
3390
              typename = decltype(ranges::empty(std::declval<R&>()))>
3391
    constexpr explicit operator bool()
3392
    {
3393
        return !ranges::empty(derived());
3394
    }
3395
3396
    template <typename R = D,
3397
              typename = decltype(ranges::empty(std::declval<const R&>()))>
3398
    constexpr explicit operator bool() const
3399
    {
3400
        return !ranges::empty(derived());
3401
    }
3402
3403
    template <typename R = D,
3404
              typename = std::enable_if_t<contiguous_iterator<iterator_t<R>>>>
3405
    constexpr auto data()
3406
387k
    {
3407
387k
        return detail::to_address(ranges::begin(derived()));
3408
387k
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Line
Count
Source
3406
135k
    {
3407
135k
        return detail::to_address(ranges::begin(derived()));
3408
135k
    }
auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Line
Count
Source
3406
252k
    {
3407
252k
        return detail::to_address(ranges::begin(derived()));
3408
252k
    }
3409
3410
    template <typename R = D,
3411
              typename = std::enable_if_t<
3412
                  range<const R> && contiguous_iterator<iterator_t<const R>>>>
3413
    constexpr auto data() const
3414
0
    {
3415
0
        return detail::to_address(ranges::begin(derived()));
3416
0
    }
Unexecuted instantiation: auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::data<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>() const
Unexecuted instantiation: auto scn::v4::ranges::view_interface<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::data<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>() const
3417
3418
    template <typename R = D,
3419
              typename = std::enable_if_t<
3420
                  forward_range<R> &&
3421
                  sized_sentinel_for<sentinel_t<R>, iterator_t<R>>>>
3422
    constexpr auto size()
3423
    {
3424
        return ranges::end(derived()) - ranges::begin(derived());
3425
    }
3426
3427
    template <typename R = D,
3428
              typename = std::enable_if_t<
3429
                  forward_range<const R> &&
3430
                  sized_sentinel_for<sentinel_t<const R>, iterator_t<const R>>>>
3431
    constexpr auto size() const
3432
    {
3433
        return ranges::end(derived()) - ranges::begin(derived());
3434
    }
3435
3436
#if 0
3437
    template <typename R = D, typename = std::enable_if_t<forward_range<R>>>
3438
    constexpr decltype(auto) front()
3439
    {
3440
        return *ranges::begin(derived());
3441
    }
3442
3443
    template <typename R = D,
3444
              typename = std::enable_if_t<forward_range<const R>>>
3445
    constexpr decltype(auto) front() const
3446
    {
3447
        return *ranges::begin(derived());
3448
    }
3449
3450
    template <
3451
        typename R = D,
3452
        typename = std::enable_if_t<bidirectional_range<R> && common_range<R>>>
3453
    constexpr decltype(auto) back()
3454
    {
3455
        return *ranges::prev(ranges::end(derived()));
3456
    }
3457
3458
    template <typename R = D,
3459
              typename = std::enable_if_t<bidirectional_range<const R> &&
3460
                                          common_range<const R>>>
3461
    constexpr decltype(auto) back() const
3462
    {
3463
        return *ranges::prev(ranges::end(derived()));
3464
    }
3465
3466
    template <typename R = D,
3467
              typename = std::enable_if_t<random_access_range<R>>>
3468
    constexpr decltype(auto) operator[](iter_difference_t<iterator_t<R>> n)
3469
    {
3470
        return ranges::begin(derived())[n];
3471
    }
3472
#endif
3473
3474
    template <typename R = D,
3475
              typename = std::enable_if_t<random_access_range<const R>>>
3476
    constexpr decltype(auto) operator[](
3477
        iter_difference_t<iterator_t<const R>> n) const
3478
    {
3479
        return ranges::begin(derived())[n];
3480
    }
3481
};
3482
3483
namespace detail::subrange_ {
3484
3485
template <typename I, typename S = I>
3486
class subrange : public view_interface<subrange<I, S>> {
3487
    static_assert(input_or_output_iterator<I>);
3488
    static_assert(sentinel_for<S, I>);
3489
3490
public:
3491
151k
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::subrange()
Line
Count
Source
3491
50.5k
    subrange() = default;
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::subrange()
Line
Count
Source
3491
101k
    subrange() = default;
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::subrange()
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::subrange()
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::subrange()
3492
3493
    template <typename I_,
3494
              std::enable_if_t<std::is_convertible_v<I_, I>>* = nullptr>
3495
    constexpr subrange(I_ i, S s)
3496
1.45M
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3497
1.45M
    {
3498
1.45M
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESE_S9_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESE_S9_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESN_SI_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_INS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEENSE_ISG_E8sentinelILb1EEEEC2ISJ_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SJ_EEvE4typeELPv0EEESR_SM_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS1_18default_sentinel_tEEESD_EC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESI_SD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorES8_EC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESD_S8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EENS5_15take_width_viewINSt3__117basic_string_viewIcNSC_11char_traitsIcEEEEE8sentinelILb1EEEEC2ISA_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESN_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKcS9_EENS5_15take_width_viewINSt3__117basic_string_viewIcNSC_11char_traitsIcEEEEE8sentinelILb1EEEEENSB_ISH_E8sentinelILb1EEEEC2ISK_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SK_EEvE4typeELPv0EEESR_SN_
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EESA_EC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESF_SA_
Line
Count
Source
3496
2.16k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3497
2.16k
    {
3498
2.16k
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKcS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESK_SF_
Line
Count
Source
3496
38.5k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3497
38.5k
    {
3498
38.5k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESN_SI_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_INS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEENS5_15take_width_viewINS4_ISB_SC_EEE8sentinelILb1EEEEENSE_ISG_E8sentinelILb1EEEEC2ISJ_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SJ_EEvE4typeELPv0EEESR_SM_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS1_18default_sentinel_tEEESD_EC2ISD_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SD_EEvE4typeELPv0EEESI_SD_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorES8_EC2IS8_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESD_S8_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EENS5_15take_width_viewINSt3__117basic_string_viewIwNSC_11char_traitsIwEEEEE8sentinelILb1EEEEC2ISA_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESN_SJ_
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKwS9_EENS5_15take_width_viewINSt3__117basic_string_viewIwNSC_11char_traitsIwEEEEE8sentinelILb1EEEEENSB_ISH_E8sentinelILb1EEEEC2ISK_TnPNSC_9enable_ifIXsr3stdE16is_convertible_vIT_SK_EEvE4typeELPv0EEESR_SN_
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EESA_EC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESF_SA_
Line
Count
Source
3496
812
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3497
812
    {
3498
812
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorIPKwS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEC2ISA_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SA_EEvE4typeELPv0EEESK_SF_
Line
Count
Source
3496
14.8k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3497
14.8k
    {
3498
14.8k
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKcS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEENSB_ISD_E8sentinelILb1EEEEC2ISG_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SG_EEvE4typeELPv0EEESO_SJ_
Line
Count
Source
3496
6.89k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3497
6.89k
    {
3498
6.89k
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeINS0_4impl27counted_width_iterator_impl22counted_width_iteratorINS7_IPKwS9_EENS5_15take_width_viewINS4_IS9_S9_EEE8sentinelILb1EEEEENSB_ISD_E8sentinelILb1EEEEC2ISG_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_SG_EEvE4typeELPv0EEESO_SJ_
Line
Count
Source
3496
2.72k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3497
2.72k
    {
3498
2.72k
    }
Unexecuted instantiation: _ZN3scn2v46ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEES8_EC2IS8_TnPNS5_9enable_ifIXsr3stdE16is_convertible_vIT_S8_EEvE4typeELPv0EEESC_S8_
_ZN3scn2v46ranges6detail9subrange_8subrangeIPKcS6_EC2IS6_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S6_EEvE4typeELPv0EEESB_S6_
Line
Count
Source
3496
516k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3497
516k
    {
3498
516k
    }
_ZN3scn2v46ranges6detail9subrange_8subrangeIPKwS6_EC2IS6_TnPNSt3__19enable_ifIXsr3stdE16is_convertible_vIT_S6_EEvE4typeELPv0EEESB_S6_
Line
Count
Source
3496
868k
        : m_iterator(SCN_MOVE(i)), m_sentinel(SCN_MOVE(s))
3497
868k
    {
3498
868k
    }
3499
3500
    template <
3501
        typename R,
3502
        std::enable_if_t<is_not_self<R, subrange> && borrowed_range<R> &&
3503
                         std::is_convertible_v<iterator_t<R>, I> &&
3504
                         std::is_convertible_v<sentinel_t<R>, S>>* = nullptr>
3505
    constexpr subrange(R&& r)
3506
        : m_iterator(scn::ranges::begin(r)), m_sentinel(scn::ranges::end(r))
3507
    {
3508
    }
3509
3510
    SCN_NODISCARD constexpr I begin() const
3511
        noexcept(std::is_nothrow_copy_constructible_v<I>)
3512
3.42M
    {
3513
3.42M
        return m_iterator;
3514
3.42M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::begin() const
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::begin() const
Line
Count
Source
3512
1.23M
    {
3513
1.23M
        return m_iterator;
3514
1.23M
    }
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::begin() const
Line
Count
Source
3512
2.03M
    {
3513
2.03M
        return m_iterator;
3514
2.03M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >::begin() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::begin() const
Line
Count
Source
3512
2.16k
    {
3513
2.16k
        return m_iterator;
3514
2.16k
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::begin() const
Line
Count
Source
3512
92.9k
    {
3513
92.9k
        return m_iterator;
3514
92.9k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::begin() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >::begin() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::begin() const
Line
Count
Source
3512
812
    {
3513
812
        return m_iterator;
3514
812
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::begin() const
Line
Count
Source
3512
43.3k
    {
3513
43.3k
        return m_iterator;
3514
43.3k
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >::begin() const
Line
Count
Source
3512
13.6k
    {
3513
13.6k
        return m_iterator;
3514
13.6k
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >::begin() const
Line
Count
Source
3512
5.74k
    {
3513
5.74k
        return m_iterator;
3514
5.74k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::begin() const
3515
    SCN_NODISCARD constexpr S end() const
3516
        noexcept(std::is_nothrow_copy_constructible_v<S>)
3517
417M
    {
3518
417M
        return m_sentinel;
3519
417M
    }
scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>::end() const
Line
Count
Source
3517
1.20M
    {
3518
1.20M
        return m_sentinel;
3519
1.20M
    }
scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>::end() const
Line
Count
Source
3517
416M
    {
3518
416M
        return m_sentinel;
3519
416M
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >::end() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::end() const
Line
Count
Source
3517
2.16k
    {
3518
2.16k
        return m_sentinel;
3519
2.16k
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >::end() const
Line
Count
Source
3517
82.2k
    {
3518
82.2k
        return m_sentinel;
3519
82.2k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >::end() const
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >::end() const
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::end() const
Line
Count
Source
3517
812
    {
3518
812
        return m_sentinel;
3519
812
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >::end() const
Line
Count
Source
3517
32.9k
    {
3518
32.9k
        return m_sentinel;
3519
32.9k
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >::end() const
Line
Count
Source
3517
10.4k
    {
3518
10.4k
        return m_sentinel;
3519
10.4k
    }
scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >::end() const
Line
Count
Source
3517
2.72k
    {
3518
2.72k
        return m_sentinel;
3519
2.72k
    }
Unexecuted instantiation: scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >::end() const
3520
3521
    SCN_NODISCARD constexpr bool empty() const noexcept
3522
    {
3523
        return m_iterator == m_sentinel;
3524
    }
3525
3526
    template <typename I_ = I,
3527
              std::enable_if_t<sized_sentinel_for<S, I_>>* = nullptr>
3528
    SCN_NODISCARD constexpr std::size_t size() const noexcept
3529
312k
    {
3530
312k
        return static_cast<size_t>(m_sentinel - m_iterator);
3531
312k
    }
_ZNK3scn2v46ranges6detail9subrange_8subrangeIPKcS6_E4sizeIS6_TnPNSt3__19enable_ifIX18sized_sentinel_forIS6_T_EEvE4typeELPv0EEEmv
Line
Count
Source
3529
122k
    {
3530
122k
        return static_cast<size_t>(m_sentinel - m_iterator);
3531
122k
    }
_ZNK3scn2v46ranges6detail9subrange_8subrangeIPKwS6_E4sizeIS6_TnPNSt3__19enable_ifIX18sized_sentinel_forIS6_T_EEvE4typeELPv0EEEmv
Line
Count
Source
3529
190k
    {
3530
190k
        return static_cast<size_t>(m_sentinel - m_iterator);
3531
190k
    }
3532
3533
private:
3534
    SCN_NO_UNIQUE_ADDRESS I m_iterator{};
3535
    SCN_NO_UNIQUE_ADDRESS S m_sentinel{};
3536
};
3537
3538
template <typename I,
3539
          typename S,
3540
          std::enable_if_t<input_or_output_iterator<I> && sentinel_for<S, I>>* =
3541
              nullptr>
3542
subrange(I, S) -> subrange<I, S>;
3543
3544
template <typename R, std::enable_if_t<borrowed_range<R>>* = nullptr>
3545
subrange(R&&) -> subrange<iterator_t<R>, sentinel_t<R>>;
3546
3547
}  // namespace detail::subrange_
3548
3549
/**
3550
 * \see `std::ranges::subrange`
3551
 */
3552
using detail::subrange_::subrange;
3553
3554
template <typename I, typename S>
3555
inline constexpr bool enable_borrowed_range<subrange<I, S>> = true;
3556
3557
struct default_sentinel_t {};
3558
inline constexpr default_sentinel_t default_sentinel{};
3559
3560
}  // namespace ranges
3561
3562
namespace detail {
3563
3564
namespace char_t_fn {
3565
template <typename T, typename = typename T::value_type>
3566
constexpr auto impl_nonarray(priority_tag<2>)
3567
0
{
3568
0
    return tag_type<typename T::value_type>{};
3569
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<char, std::__1::char_traits<char> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >, char>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >, wchar_t>(scn::v4::detail::priority_tag<2ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char>(scn::v4::detail::priority_tag<2ul>)
3570
template <typename T, typename = decltype(SCN_DECLVAL(T&).begin())>
3571
constexpr auto impl_nonarray(priority_tag<1>)
3572
0
{
3573
0
    return tag_type<remove_cvref_t<decltype(*(SCN_DECLVAL(T&).begin()))>>{};
3574
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char const*>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t const*>(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl_nonarray<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> > >(scn::v4::detail::priority_tag<1ul>)
3575
template <typename T>
3576
constexpr auto impl_nonarray(priority_tag<0>)
3577
{
3578
    return tag_type<remove_cvref_t<decltype(*begin(SCN_DECLVAL(T&)))>>{};
3579
}
3580
3581
template <typename T,
3582
          typename = std::enable_if_t<ranges::range<remove_cvref_t<T>>>>
3583
constexpr auto impl()
3584
0
{
3585
0
    using T_nocvref = remove_cvref_t<T>;
3586
0
    if constexpr (std::is_array_v<T_nocvref>) {
3587
0
        return tag_type<std::remove_all_extents_t<T_nocvref>>{};
3588
0
    }
3589
0
    else {
3590
0
        return impl_nonarray<T_nocvref>(priority_tag<2>{});
3591
0
    }
3592
0
}
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::detail::basic_scan_buffer<char>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<char, std::__1::char_traits<char> > > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<scn::v4::ranges::detail::subrange_::subrange<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::sentinel<true> >, scn::v4::impl::take_width_view<scn::v4::impl::take_width_view<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> > >::sentinel<true> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>()
Unexecuted instantiation: auto scn::v4::detail::char_t_fn::impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, void>()
3593
3594
template <typename Range>
3595
using result = decltype(impl<Range>());
3596
}  // namespace char_t_fn
3597
3598
template <typename Range>
3599
using char_t = typename char_t_fn::result<Range>::type;
3600
3601
template <typename Range, typename = void>
3602
inline constexpr bool is_file_or_narrow_range_impl = false;
3603
template <>
3604
inline constexpr bool is_file_or_narrow_range_impl<std::FILE*, void> = true;
3605
template <typename Range>
3606
inline constexpr bool
3607
    is_file_or_narrow_range_impl<Range,
3608
                                 std::enable_if_t<ranges::range<Range>>> =
3609
        std::is_same_v<char_t<Range>, char>;
3610
3611
template <typename Range>
3612
inline constexpr bool is_file_or_narrow_range =
3613
    is_file_or_narrow_range_impl<remove_cvref_t<Range>>;
3614
3615
template <typename Range, typename = void>
3616
inline constexpr bool is_wide_range = false;
3617
template <typename Range>
3618
inline constexpr bool
3619
    is_wide_range<Range,
3620
                  std::enable_if_t<ranges::range<remove_cvref_t<Range>>>> =
3621
        std::is_same_v<char_t<Range>, wchar_t>;
3622
3623
template <typename R, bool Borrowed = ranges::borrowed_range<R>>
3624
struct borrowed_tail_subrange {
3625
    using type = ranges::subrange<ranges::iterator_t<R>, ranges::sentinel_t<R>>;
3626
};
3627
template <typename R>
3628
struct borrowed_tail_subrange<R, false> {
3629
    using type = ranges::dangling;
3630
};
3631
3632
/// Equivalent to
3633
/// `ranges::subrange<ranges::iterator_t<R>,
3634
/// ranges::sentinel_t<R>>` if `R` is a `borrowed_range`, and
3635
/// `ranges::dangling` otherwise.
3636
///
3637
/// Similar to `ranges::borrowed_subrange_t<R>`, expect this preserves
3638
/// the range sentinel.
3639
template <typename R>
3640
using borrowed_tail_subrange_t = typename borrowed_tail_subrange<R>::type;
3641
3642
}  // namespace detail
3643
3644
namespace ranges {
3645
template <typename CharT, typename Traits>
3646
inline constexpr bool
3647
    enable_borrowed_range<std::basic_string_view<CharT, Traits>> = true;
3648
}
3649
3650
SCN_GCC_POP  // -Wnoexcept (for the entirety of the expected and ranges impls)
3651
3652
    // reset formatting
3653
    namespace detail
3654
{
3655
}
3656
3657
/////////////////////////////////////////////////////////////////
3658
// Small generic algorithms
3659
/////////////////////////////////////////////////////////////////
3660
3661
namespace detail {
3662
3663
/**
3664
 * Implementation of `std::min_element` without including `<algorithm>`
3665
 */
3666
template <typename It>
3667
constexpr It min_element(It first, It last)
3668
{
3669
    if (first == last) {
3670
        return last;
3671
    }
3672
3673
    It smallest = first;
3674
    ++first;
3675
    for (; first != last; ++first) {
3676
        if (*first < *smallest) {
3677
            smallest = first;
3678
        }
3679
    }
3680
    return smallest;
3681
}
3682
3683
/**
3684
 * Implementation of `std::min` without including `<algorithm>`
3685
 */
3686
template <typename T>
3687
constexpr T min(T a, T b) noexcept
3688
{
3689
    return (b < a) ? b : a;
3690
}
3691
3692
template <bool IsConstexpr, typename T, typename Ptr = const T*>
3693
constexpr Ptr find(Ptr first, Ptr last, T value)
3694
{
3695
    for (; first != last; ++first) {
3696
        if (*first == value) {
3697
            return first;
3698
        }
3699
    }
3700
    return last;
3701
}
3702
3703
template <>
3704
inline const char* find<false, char>(const char* first,
3705
                                     const char* last,
3706
                                     char value)
3707
0
{
3708
0
    auto ptr = static_cast<const char*>(
3709
0
        std::memchr(first, value, static_cast<size_t>(last - first)));
3710
0
    return ptr != nullptr ? ptr : last;
3711
0
}
3712
3713
}  // namespace detail
3714
3715
/////////////////////////////////////////////////////////////////
3716
// Errors
3717
/////////////////////////////////////////////////////////////////
3718
3719
/**
3720
 * Error class.
3721
 * Used as a return value for functions without a success value.
3722
 * Doesn't have a success state, and isn't default constructible:
3723
 * use `expected<void, scan_error>` to achieve that.
3724
 *
3725
 * \ingroup result
3726
 */
3727
class SCN_TRIVIAL_ABI scan_error {
3728
public:
3729
    /// Error code
3730
    enum code {
3731
        /// Input ended unexpectedly.
3732
        end_of_input,
3733
3734
        /// Format string was invalid.
3735
        /// Often a compile-time error, if supported and/or enabled.
3736
        invalid_format_string,
3737
3738
        /// Scanned value was invalid for given type,
3739
        /// or a value of the given couldn't be scanned.
3740
        invalid_scanned_value,
3741
3742
        /// Literal character specified in format string not found in source.
3743
        invalid_literal,
3744
3745
        /// Too many fill characters scanned,
3746
        /// field precision (max width) exceeded.
3747
        invalid_fill,
3748
3749
        /// Scanned field width was shorter than
3750
        /// what was specified as the minimum field width.
3751
        length_too_short,
3752
3753
        /// Source range is in an invalid state,
3754
        /// failed to continue reading.
3755
        invalid_source_state,
3756
3757
        /// Value out of range, too large (higher than the maximum value)
3758
        /// i.e. >2^32 for int32
3759
        value_positive_overflow,
3760
3761
        /// Value out of range, too small (lower than the minimum value)
3762
        /// i.e. <2^32 for int32
3763
        value_negative_overflow,
3764
3765
        /// Value out of range, magnitude too small, sign +
3766
        /// (between 0 and the smallest subnormal float)
3767
        value_positive_underflow,
3768
3769
        /// Value out of range, magnitude too small, sign -
3770
        /// (between 0 and the smallest subnormal float)
3771
        value_negative_underflow,
3772
3773
        /// Value of this type can't be parsed,
3774
        /// either from this source or not at all.
3775
        type_not_supported,
3776
3777
        max_error
3778
    };
3779
3780
private:
3781
    using code_t = code;
3782
3783
public:
3784
    /// Constructs an error with `c` and `m`
3785
308k
    constexpr scan_error(code_t c, const char* m) noexcept : m_msg(m), m_code(c)
3786
308k
    {
3787
308k
        SCN_UNLIKELY_ATTR SCN_UNUSED(m_code);
3788
308k
    }
3789
3790
    constexpr explicit operator code_t() const noexcept
3791
0
    {
3792
0
        return m_code;
3793
0
    }
3794
3795
    /// Get error code
3796
    SCN_NODISCARD constexpr code_t code() const noexcept
3797
14.7k
    {
3798
14.7k
        return m_code;
3799
14.7k
    }
3800
    /// Get error message
3801
    SCN_NODISCARD constexpr auto msg() const noexcept -> const char*
3802
0
    {
3803
0
        return m_msg;
3804
0
    }
3805
3806
    /// Convert to a `std::errc`.
3807
    SCN_NODISCARD constexpr std::errc to_errc() const noexcept
3808
0
    {
3809
0
        switch (m_code) {
3810
0
            case end_of_input:
3811
0
            case invalid_format_string:
3812
0
            case invalid_scanned_value:
3813
0
            case invalid_literal:
3814
0
            case invalid_fill:
3815
0
            case length_too_short:
3816
0
            case type_not_supported:
3817
0
                return std::errc::invalid_argument;
3818
0
            case invalid_source_state:
3819
0
                return std::errc::io_error;
3820
0
            case value_positive_overflow:
3821
0
            case value_negative_overflow:
3822
0
            case value_positive_underflow:
3823
0
            case value_negative_underflow:
3824
0
                return std::errc::result_out_of_range;
3825
0
            case max_error:
3826
0
                SCN_CLANG_PUSH
3827
0
                SCN_CLANG_IGNORE("-Wcovered-switch-default")
3828
0
            default:
3829
0
                assert(false);
3830
0
                SCN_UNREACHABLE;
3831
0
                SCN_CLANG_POP
3832
0
        }
3833
0
    }
3834
3835
private:
3836
    const char* m_msg;
3837
    code_t m_code;
3838
};
3839
3840
constexpr bool operator==(scan_error a, scan_error b) noexcept
3841
0
{
3842
0
    return a.code() == b.code();
3843
0
}
3844
constexpr bool operator!=(scan_error a, scan_error b) noexcept
3845
0
{
3846
0
    return !(a == b);
3847
0
}
3848
3849
constexpr bool operator==(scan_error a, enum scan_error::code b) noexcept
3850
0
{
3851
0
    return a.code() == b;
3852
0
}
3853
constexpr bool operator!=(scan_error a, enum scan_error::code b) noexcept
3854
0
{
3855
0
    return !(a == b);
3856
0
}
3857
3858
constexpr bool operator==(enum scan_error::code a, scan_error b) noexcept
3859
0
{
3860
0
    return a == b.code();
3861
0
}
3862
constexpr bool operator!=(enum scan_error::code a, scan_error b) noexcept
3863
0
{
3864
0
    return !(a == b);
3865
0
}
3866
3867
namespace detail {
3868
// Intentionally not constexpr, to give out a compile-time error
3869
SCN_COLD scan_error handle_error(scan_error e);
3870
}  // namespace detail
3871
3872
#if SCN_HAS_EXCEPTIONS
3873
3874
namespace detail {
3875
3876
SCN_CLANG_PUSH
3877
SCN_CLANG_IGNORE("-Wweak-vtables")
3878
3879
class scan_format_string_error_base : public std::runtime_error {
3880
public:
3881
    explicit scan_format_string_error_base(const std::string& what_arg)
3882
        : runtime_error(what_arg)
3883
0
    {
3884
0
    }
3885
3886
    explicit scan_format_string_error_base(std::false_type,
3887
                                           const char* what_arg)
3888
        : runtime_error(what_arg)
3889
0
    {
3890
0
    }
3891
3892
    explicit scan_format_string_error_base(std::true_type, const char* what_arg)
3893
        : runtime_error(what_arg), m_internal_literal_msg(what_arg)
3894
0
    {
3895
0
    }
3896
3897
    // Doing everything in a `detail::` base class
3898
    // to make this a `friend` inside that namespace
3899
    // (essentially private)
3900
    friend const char* get_internal_literal_msg(
3901
        const scan_format_string_error_base& m)
3902
0
    {
3903
0
        return m.m_internal_literal_msg;
3904
0
    }
3905
3906
private:
3907
    const char* m_internal_literal_msg{nullptr};
3908
};
3909
3910
}  // namespace detail
3911
3912
/**
3913
 * An exception type used to report format string parsing errors.
3914
 */
3915
class scan_format_string_error : public detail::scan_format_string_error_base {
3916
public:
3917
    // Not `using` constructors to document them explicitly.
3918
3919
    /**
3920
     * Construct from a `std::string`.
3921
     */
3922
    explicit scan_format_string_error(const std::string& what_arg)
3923
        : scan_format_string_error_base(what_arg)
3924
0
    {
3925
0
    }
3926
3927
    /**
3928
     * Construct from a `const char*`.
3929
     */
3930
    explicit scan_format_string_error(const char* what_arg)
3931
        : scan_format_string_error_base(std::false_type{}, what_arg)
3932
0
    {
3933
0
    }
3934
3935
    /**
3936
     * Construct from a string literal.
3937
     */
3938
    template <std::size_t N>
3939
    explicit scan_format_string_error(const char (&what_arg)[N])
3940
        : scan_format_string_error_base(std::true_type{}, what_arg)
3941
    {
3942
    }
3943
};
3944
3945
SCN_CLANG_POP  // -Wweak-vtables
3946
#endif
3947
3948
    /**
3949
     * An `expected<T, scan_error>`.
3950
     *
3951
     * Not a type alias to shorten template names.
3952
     *
3953
     * \ingroup result
3954
     */
3955
    template <typename T>
3956
    struct scan_expected : public expected<T, scan_error> {
3957
    using expected<T, scan_error>::expected;
3958
3959
    scan_expected(const expected<T, scan_error>& other)
3960
        : expected<T, scan_error>(other)
3961
    {
3962
    }
3963
    scan_expected(expected<T, scan_error>&& other)
3964
10.1k
        : expected<T, scan_error>(SCN_MOVE(other))
3965
10.1k
    {
3966
10.1k
    }
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>&&)
scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<char const*, char const*>, scn::v4::scan_error>&&)
Line
Count
Source
3964
1.72k
        : expected<T, scan_error>(SCN_MOVE(other))
3965
1.72k
    {
3966
1.72k
    }
scn::v4::scan_expected<char const*>::scan_expected(scn::v4::expected<char const*, scn::v4::scan_error>&&)
Line
Count
Source
3964
950
        : expected<T, scan_error>(SCN_MOVE(other))
3965
950
    {
3966
950
    }
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator>::scan_expected(scn::v4::expected<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::scan_error>&&)
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, scn::v4::scan_error>&&)
scn::v4::scan_expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*> >::scan_expected(scn::v4::expected<scn::v4::impl::counted_width_iterator_impl::counted_width_iterator<wchar_t const*, wchar_t const*>, scn::v4::scan_error>&&)
Line
Count
Source
3964
884
        : expected<T, scan_error>(SCN_MOVE(other))
3965
884
    {
3966
884
    }
scn::v4::scan_expected<wchar_t const*>::scan_expected(scn::v4::expected<wchar_t const*, scn::v4::scan_error>&&)
Line
Count
Source
3964
6.55k
        : expected<T, scan_error>(SCN_MOVE(other))
3965
6.55k
    {
3966
6.55k
    }
Unexecuted instantiation: scn::v4::scan_expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator>::scan_expected(scn::v4::expected<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::scan_error>&&)
3967
};
3968
3969
namespace detail {
3970
constexpr auto unexpected_scan_error(enum scan_error::code c, const char* m)
3971
177k
{
3972
177k
    return unexpected(scan_error{c, m});
3973
177k
}
3974
3975
template <typename T>
3976
struct is_expected_impl<scan_expected<T>> : std::true_type {};
3977
}  // namespace detail
3978
3979
75.1k
#define SCN_TRY_IMPL_CONCAT(a, b)  a##b
3980
75.1k
#define SCN_TRY_IMPL_CONCAT2(a, b) SCN_TRY_IMPL_CONCAT(a, b)
3981
75.1k
#define SCN_TRY_TMP                SCN_TRY_IMPL_CONCAT2(_scn_try_tmp_, __LINE__)
3982
3983
#define SCN_TRY_DISCARD(x)                                          \
3984
65.5k
    do {                                                            \
3985
65.5k
        if (auto&& SCN_TRY_TMP = (x); SCN_UNLIKELY(!SCN_TRY_TMP)) { \
3986
16.0k
            return ::scn::unexpected(SCN_TRY_TMP.error());          \
3987
16.0k
        }                                                           \
3988
65.5k
    } while (false)
3989
3990
#define SCN_TRY_ASSIGN(init, x)                        \
3991
297k
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
_ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3991
8
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v44impl12float_readerIcE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKcSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3991
318
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIcE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKcSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS6_18default_sentinel_tEEEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESK_ENKUlRKSK_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISD_SE_EENSG_8sentinelILb1EEEEEEEDaSR_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E0_clISE_EEDaSP_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS5_18default_sentinel_tEEEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESI_ENKUlRKSI_E_clISE_EEDaSP_
_ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E0_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3991
20
    auto&& SCN_TRY_TMP = (x);                          \
_ZZN3scn2v44impl12float_readerIwE16read_source_implINS1_15take_width_viewINS0_6ranges6detail9subrange_8subrangeIPKwSB_EEEEEENS0_13scan_expectedIDTclL_ZNS6_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESH_ENKUlRKSH_E_clINS9_INS1_27counted_width_iterator_impl22counted_width_iteratorISB_SB_EENSD_8sentinelILb1EEEEEEEDaSO_
Line
Count
Source
3991
158
    auto&& SCN_TRY_TMP = (x);                          \
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E0_clISB_EEDaSM_
Unexecuted instantiation: _ZZN3scn2v44impl12float_readerIwE16read_source_implINS0_6ranges6detail9subrange_8subrangeIPKwSA_EEEENS0_13scan_expectedIDTclL_ZNS5_5beginEEclsr3stdE7declvalIRNSt3__19add_constIT_E4typeEEEEEEESF_ENKUlRKSF_E_clISB_EEDaSM_
3992
297k
    if (SCN_UNLIKELY(!SCN_TRY_TMP)) {                  \
3993
59.1k
        return ::scn::unexpected(SCN_TRY_TMP.error()); \
3994
59.1k
    }                                                  \
3995
302k
    init = *SCN_FWD(SCN_TRY_TMP)
3996
279k
#define SCN_TRY(name, x) SCN_TRY_ASSIGN(auto name, x)
3997
3998
/////////////////////////////////////////////////////////////////
3999
// string_view utilities
4000
/////////////////////////////////////////////////////////////////
4001
4002
namespace detail {
4003
4004
template <typename T>
4005
struct is_string_view : std::false_type {};
4006
template <typename CharT, typename Traits>
4007
struct is_string_view<std::basic_string_view<CharT, Traits>> : std::true_type {
4008
};
4009
4010
// workarounds for MSVC string_view debug iterators
4011
template <typename CharT>
4012
constexpr std::basic_string_view<CharT> make_string_view_from_iterators(
4013
    typename std::basic_string_view<CharT>::iterator first,
4014
    typename std::basic_string_view<CharT>::iterator last)
4015
951k
{
4016
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
4017
                                          decltype(first), decltype(last)> &&
4018
                  !SCN_MSVC_DEBUG_ITERATORS) {
4019
        return {first, last};
4020
    }
4021
951k
    else {
4022
951k
        return {to_address(first), static_cast<size_t>(std::distance(
4023
951k
                                       to_address(first), to_address(last)))};
4024
951k
    }
4025
951k
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::make_string_view_from_iterators<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
4015
829k
{
4016
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
4017
                                          decltype(first), decltype(last)> &&
4018
                  !SCN_MSVC_DEBUG_ITERATORS) {
4019
        return {first, last};
4020
    }
4021
829k
    else {
4022
829k
        return {to_address(first), static_cast<size_t>(std::distance(
4023
829k
                                       to_address(first), to_address(last)))};
4024
829k
    }
4025
829k
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::make_string_view_from_iterators<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
4015
121k
{
4016
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
4017
                                          decltype(first), decltype(last)> &&
4018
                  !SCN_MSVC_DEBUG_ITERATORS) {
4019
        return {first, last};
4020
    }
4021
121k
    else {
4022
121k
        return {to_address(first), static_cast<size_t>(std::distance(
4023
121k
                                       to_address(first), to_address(last)))};
4024
121k
    }
4025
121k
}
4026
4027
template <typename CharT>
4028
constexpr std::basic_string_view<CharT> make_string_view_from_pointers(
4029
    const CharT* first,
4030
    const CharT* last)
4031
207M
{
4032
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
4033
                                          const CharT*, const CharT*>) {
4034
        return {first, last};
4035
    }
4036
207M
    else {
4037
207M
        return {first, static_cast<size_t>(std::distance(first, last))};
4038
207M
    }
4039
207M
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::make_string_view_from_pointers<char>(char const*, char const*)
Line
Count
Source
4031
41.9k
{
4032
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
4033
                                          const CharT*, const CharT*>) {
4034
        return {first, last};
4035
    }
4036
41.9k
    else {
4037
41.9k
        return {first, static_cast<size_t>(std::distance(first, last))};
4038
41.9k
    }
4039
41.9k
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::make_string_view_from_pointers<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
4031
207M
{
4032
    if constexpr (std::is_constructible_v<std::basic_string_view<CharT>,
4033
                                          const CharT*, const CharT*>) {
4034
        return {first, last};
4035
    }
4036
207M
    else {
4037
207M
        return {first, static_cast<size_t>(std::distance(first, last))};
4038
207M
    }
4039
207M
}
4040
4041
template <typename CharT>
4042
constexpr auto make_string_view_iterator(
4043
    std::basic_string_view<CharT> sv,
4044
    typename std::basic_string_view<CharT>::iterator it) ->
4045
    typename std::basic_string_view<CharT>::iterator
4046
376k
{
4047
    if constexpr (std::is_constructible_v<
4048
                      typename std::basic_string_view<CharT>::iterator,
4049
                      decltype(it)> &&
4050
376k
                  !SCN_MSVC_DEBUG_ITERATORS) {
4051
376k
        SCN_UNUSED(sv);
4052
376k
        return it;
4053
    }
4054
    else {
4055
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
4056
    }
4057
376k
}
std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator scn::v4::detail::make_string_view_iterator<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >::iterator)
Line
Count
Source
4046
367k
{
4047
    if constexpr (std::is_constructible_v<
4048
                      typename std::basic_string_view<CharT>::iterator,
4049
                      decltype(it)> &&
4050
367k
                  !SCN_MSVC_DEBUG_ITERATORS) {
4051
367k
        SCN_UNUSED(sv);
4052
367k
        return it;
4053
    }
4054
    else {
4055
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
4056
    }
4057
367k
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator scn::v4::detail::make_string_view_iterator<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >::iterator)
Line
Count
Source
4046
8.73k
{
4047
    if constexpr (std::is_constructible_v<
4048
                      typename std::basic_string_view<CharT>::iterator,
4049
                      decltype(it)> &&
4050
8.73k
                  !SCN_MSVC_DEBUG_ITERATORS) {
4051
8.73k
        SCN_UNUSED(sv);
4052
8.73k
        return it;
4053
    }
4054
    else {
4055
        return sv.begin() + std::distance(sv.data(), detail::to_address(it));
4056
    }
4057
8.73k
}
4058
4059
template <typename CharT>
4060
constexpr auto make_string_view_iterator_from_pointer(
4061
    std::basic_string_view<CharT> sv,
4062
    const CharT* ptr) -> typename std::basic_string_view<CharT>::iterator
4063
{
4064
    if constexpr (std::is_constructible_v<
4065
                      typename std::basic_string_view<CharT>::iterator,
4066
                      const CharT*> &&
4067
                  !SCN_MSVC_DEBUG_ITERATORS) {
4068
        SCN_UNUSED(sv);
4069
        return ptr;
4070
    }
4071
    else {
4072
        return sv.begin() + std::distance(sv.data(), ptr);
4073
    }
4074
}
4075
4076
/////////////////////////////////////////////////////////////////
4077
// Lightweight Unicode facilities
4078
/////////////////////////////////////////////////////////////////
4079
4080
constexpr inline bool is_ascii_code_point(char32_t cp)
4081
0
{
4082
0
    return cp <= 0x7f;
4083
0
}
4084
4085
template <typename U8>
4086
constexpr std::size_t utf8_code_point_length_by_starting_code_unit(U8 ch)
4087
2.86M
{
4088
2.86M
    static_assert(sizeof(U8) == 1);
4089
4090
2.86M
    SCN_GCC_COMPAT_PUSH
4091
2.86M
    SCN_GCC_COMPAT_IGNORE("-Wsign-conversion")
4092
2.86M
    constexpr char lengths[] =
4093
2.86M
        "\1\1\1\1\1\1\1\1"  // highest bit is 0 -> single-byte
4094
2.86M
        "\1\1\1\1\1\1\1\1"
4095
2.86M
        "\0\0\0\0\0\0\0\0"  // highest bits 10 -> error, non-initial
4096
                            // byte
4097
2.86M
        "\2\2\2\2"          // highest bits 110 -> 2-byte cp
4098
2.86M
        "\3\3"              // highest bits 1110 -> 3-byte cp
4099
2.86M
        "\4";               // highest bits 11110 -> 4-byte cp
4100
2.86M
    return lengths[static_cast<unsigned char>(ch) >> 3];
4101
2.86M
    SCN_GCC_COMPAT_POP
4102
2.86M
}
4103
4104
template <typename U16>
4105
constexpr std::size_t utf16_code_point_length_by_starting_code_unit(U16 ch)
4106
{
4107
    static_assert(sizeof(U16) == 2);
4108
4109
    const auto lead = static_cast<uint16_t>(0xffff & ch);
4110
    if (lead >= 0xd800 && lead <= 0xdbff) {
4111
        // high surrogate
4112
        return 2;
4113
    }
4114
    if (lead >= 0xdc00 && lead <= 0xdfff) {
4115
        // unpaired low surrogate
4116
        return 0;
4117
    }
4118
    return 1;
4119
}
4120
4121
template <typename U>
4122
constexpr std::size_t code_point_length_by_starting_code_unit(U ch)
4123
210M
{
4124
210M
    if constexpr (sizeof(U) == 1) {
4125
2.86M
        return utf8_code_point_length_by_starting_code_unit(ch);
4126
    }
4127
    else if constexpr (sizeof(U) == 2) {
4128
        return utf16_code_point_length_by_starting_code_unit(ch);
4129
    }
4130
207M
    else {
4131
        // utf-32
4132
207M
        static_assert(sizeof(U) == 4);
4133
207M
        SCN_UNUSED(ch);
4134
207M
        return 1;
4135
207M
    }
4136
210M
}
unsigned long scn::v4::detail::code_point_length_by_starting_code_unit<char>(char)
Line
Count
Source
4123
2.86M
{
4124
2.86M
    if constexpr (sizeof(U) == 1) {
4125
2.86M
        return utf8_code_point_length_by_starting_code_unit(ch);
4126
    }
4127
    else if constexpr (sizeof(U) == 2) {
4128
        return utf16_code_point_length_by_starting_code_unit(ch);
4129
    }
4130
    else {
4131
        // utf-32
4132
        static_assert(sizeof(U) == 4);
4133
        SCN_UNUSED(ch);
4134
        return 1;
4135
    }
4136
2.86M
}
unsigned long scn::v4::detail::code_point_length_by_starting_code_unit<wchar_t>(wchar_t)
Line
Count
Source
4123
207M
{
4124
    if constexpr (sizeof(U) == 1) {
4125
        return utf8_code_point_length_by_starting_code_unit(ch);
4126
    }
4127
    else if constexpr (sizeof(U) == 2) {
4128
        return utf16_code_point_length_by_starting_code_unit(ch);
4129
    }
4130
207M
    else {
4131
        // utf-32
4132
207M
        static_assert(sizeof(U) == 4);
4133
207M
        SCN_UNUSED(ch);
4134
207M
        return 1;
4135
207M
    }
4136
207M
}
4137
4138
inline constexpr char32_t invalid_code_point = 0x110000;
4139
4140
inline constexpr char32_t decode_utf8_code_point_exhaustive(
4141
    std::string_view input)
4142
2.61M
{
4143
2.61M
    SCN_EXPECT(!input.empty() && input.size() <= 4);
4144
4145
2.61M
    const auto is_trailing_code_unit = [](char ch) {
4146
489k
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
4147
489k
    };
4148
4149
2.61M
    if (input.size() == 1) {
4150
2.17M
        if (static_cast<unsigned char>(input[0]) >= 0x80) {
4151
126
            SCN_UNLIKELY_ATTR
4152
126
            return invalid_code_point;
4153
126
        }
4154
2.17M
        return static_cast<char32_t>(input[0]);
4155
2.17M
    }
4156
4157
441k
    if (input.size() == 2) {
4158
393k
        if ((static_cast<unsigned char>(input[0]) & 0xe0) != 0xc0) {
4159
30
            SCN_UNLIKELY_ATTR
4160
30
            return invalid_code_point;
4161
30
        }
4162
393k
        if (!is_trailing_code_unit(input[1])) {
4163
4.54k
            SCN_UNLIKELY_ATTR
4164
4.54k
            return invalid_code_point;
4165
4.54k
        }
4166
4167
388k
        char32_t cp{};
4168
388k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
4169
388k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
4170
388k
        return cp;
4171
393k
    }
4172
4173
47.8k
    if (input.size() == 3) {
4174
43.0k
        if ((static_cast<unsigned char>(input[0]) & 0xf0) != 0xe0) {
4175
18
            SCN_UNLIKELY_ATTR
4176
18
            return invalid_code_point;
4177
18
        }
4178
43.0k
        if (!is_trailing_code_unit(input[1]) ||
4179
43.0k
            !is_trailing_code_unit(input[2])) {
4180
1.58k
            SCN_UNLIKELY_ATTR
4181
1.58k
            return invalid_code_point;
4182
1.58k
        }
4183
4184
41.4k
        char32_t cp{};
4185
41.4k
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
4186
41.4k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
4187
41.4k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
4188
41.4k
        return cp;
4189
43.0k
    }
4190
4191
4.83k
    if (input.size() == 4) {
4192
4.83k
        if ((static_cast<unsigned char>(input[0]) & 0xf8) != 0xf0) {
4193
0
            SCN_UNLIKELY_ATTR
4194
0
            return invalid_code_point;
4195
0
        }
4196
4.83k
        if (static_cast<unsigned char>(input[0]) > 0xf4) {
4197
326
            SCN_UNLIKELY_ATTR
4198
326
            return invalid_code_point;
4199
326
        }
4200
4.50k
        if (!is_trailing_code_unit(input[1]) ||
4201
4.50k
            !is_trailing_code_unit(input[2]) ||
4202
4.50k
            !is_trailing_code_unit(input[3])) {
4203
1.67k
            SCN_UNLIKELY_ATTR
4204
1.67k
            return invalid_code_point;
4205
1.67k
        }
4206
4207
2.82k
        char32_t cp{};
4208
2.82k
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
4209
2.82k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
4210
2.82k
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
4211
2.82k
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
4212
2.82k
        return cp;
4213
4.50k
    }
4214
4215
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
4216
    // gcc 7 thinks we'll get here, even when we won't
4217
0
    SCN_EXPECT(false);
4218
0
#endif
4219
0
    SCN_UNREACHABLE;
4220
0
}
4221
4222
inline constexpr char32_t decode_utf8_code_point_exhaustive_valid(
4223
    std::string_view input)
4224
110k
{
4225
110k
    SCN_EXPECT(!input.empty() && input.size() <= 4);
4226
4227
110k
    const auto is_trailing_code_unit = [](char ch) {
4228
17.5k
        return static_cast<unsigned char>(ch) >> 6 == 0x2;
4229
17.5k
    };
4230
4231
110k
    if (input.size() == 1) {
4232
93.7k
        SCN_EXPECT(static_cast<unsigned char>(input[0]) < 0x80);
4233
93.7k
        return static_cast<char32_t>(input[0]);
4234
93.7k
    }
4235
4236
16.5k
    if (input.size() == 2) {
4237
15.7k
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xe0) == 0xc0);
4238
15.7k
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4239
4240
15.7k
        char32_t cp{};
4241
15.7k
        cp |= (static_cast<char32_t>(input[0]) & 0x1f) << 6;
4242
15.7k
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 0;
4243
15.7k
        return cp;
4244
15.7k
    }
4245
4246
824
    if (input.size() == 3) {
4247
702
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf0) == 0xe0);
4248
702
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4249
702
        SCN_EXPECT(is_trailing_code_unit(input[2]));
4250
4251
702
        char32_t cp{};
4252
702
        cp |= (static_cast<char32_t>(input[0]) & 0x0f) << 12;
4253
702
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 6;
4254
702
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 0;
4255
702
        return cp;
4256
702
    }
4257
4258
122
    if (input.size() == 4) {
4259
122
        SCN_EXPECT((static_cast<unsigned char>(input[0]) & 0xf8) == 0xf0);
4260
122
        SCN_EXPECT(static_cast<unsigned char>(input[0]) <= 0xf4);
4261
122
        SCN_EXPECT(is_trailing_code_unit(input[1]));
4262
122
        SCN_EXPECT(is_trailing_code_unit(input[2]));
4263
122
        SCN_EXPECT(is_trailing_code_unit(input[3]));
4264
4265
122
        char32_t cp{};
4266
122
        cp |= (static_cast<char32_t>(input[0]) & 0x07) << 18;
4267
122
        cp |= (static_cast<char32_t>(input[1]) & 0x3f) << 12;
4268
122
        cp |= (static_cast<char32_t>(input[2]) & 0x3f) << 6;
4269
122
        cp |= (static_cast<char32_t>(input[3]) & 0x3f) << 0;
4270
122
        return cp;
4271
122
    }
4272
4273
0
#if !SCN_GCC || SCN_GCC >= SCN_COMPILER(8, 0, 0)
4274
    // gcc 7 thinks we'll get here, even when we won't
4275
0
    SCN_EXPECT(false);
4276
0
#endif
4277
0
    SCN_UNREACHABLE;
4278
0
}
4279
4280
template <typename CharT>
4281
inline constexpr char32_t decode_utf16_code_point_exhaustive(
4282
    std::basic_string_view<CharT> input)
4283
{
4284
    static_assert(sizeof(CharT) == 2);
4285
4286
    SCN_EXPECT(!input.empty() && input.size() <= 2);
4287
4288
    if (input.size() == 1) {
4289
        return static_cast<char32_t>(input[0]);
4290
    }
4291
4292
    const auto lead = static_cast<uint32_t>(input[0]);
4293
    const auto trail = static_cast<uint32_t>(input[1]);
4294
    if (lead < 0xd800 || lead > 0xdbff || trail < 0xdc00 || trail > 0xdfff) {
4295
        SCN_UNLIKELY_ATTR
4296
        return invalid_code_point;
4297
    }
4298
4299
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
4300
    return static_cast<char32_t>(cp + 0x10000);
4301
}
4302
4303
template <typename CharT>
4304
inline constexpr char32_t decode_utf16_code_point_exhaustive_valid(
4305
    std::basic_string_view<CharT> input)
4306
{
4307
    static_assert(sizeof(CharT) == 2);
4308
4309
    SCN_EXPECT(!input.empty() && input.size() <= 2);
4310
4311
    if (input.size() == 1) {
4312
        return static_cast<char32_t>(input[0]);
4313
    }
4314
4315
    const auto lead = static_cast<uint32_t>(input[0]);
4316
    const auto trail = static_cast<uint32_t>(input[1]);
4317
    SCN_EXPECT(lead >= 0xd800);
4318
    SCN_EXPECT(lead <= 0xdbff);
4319
    SCN_EXPECT(trail >= 0xdc00);
4320
    SCN_EXPECT(trail <= 0xdfff);
4321
4322
    const auto cp = ((lead - 0xd800) << 10) | (trail - 0xdc00);
4323
    return static_cast<char32_t>(cp + 0x10000);
4324
}
4325
4326
template <typename CharT>
4327
inline constexpr char32_t decode_code_point_exhaustive(
4328
    std::basic_string_view<CharT> input)
4329
210M
{
4330
210M
    if constexpr (sizeof(CharT) == 1) {
4331
2.61M
        return decode_utf8_code_point_exhaustive(input);
4332
    }
4333
    else if constexpr (sizeof(CharT) == 2) {
4334
        return decode_utf16_code_point_exhaustive(input);
4335
    }
4336
207M
    else {
4337
207M
        SCN_EXPECT(input.size() == 1);
4338
207M
        auto cp = static_cast<char32_t>(input.front());
4339
207M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4340
39.6k
            return invalid_code_point;
4341
39.6k
        }
4342
207M
        return cp;
4343
207M
    }
4344
210M
}
char32_t scn::v4::detail::decode_code_point_exhaustive<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4329
2.61M
{
4330
2.61M
    if constexpr (sizeof(CharT) == 1) {
4331
2.61M
        return decode_utf8_code_point_exhaustive(input);
4332
    }
4333
    else if constexpr (sizeof(CharT) == 2) {
4334
        return decode_utf16_code_point_exhaustive(input);
4335
    }
4336
    else {
4337
        SCN_EXPECT(input.size() == 1);
4338
        auto cp = static_cast<char32_t>(input.front());
4339
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4340
            return invalid_code_point;
4341
        }
4342
        return cp;
4343
    }
4344
2.61M
}
char32_t scn::v4::detail::decode_code_point_exhaustive<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
4329
207M
{
4330
    if constexpr (sizeof(CharT) == 1) {
4331
        return decode_utf8_code_point_exhaustive(input);
4332
    }
4333
    else if constexpr (sizeof(CharT) == 2) {
4334
        return decode_utf16_code_point_exhaustive(input);
4335
    }
4336
207M
    else {
4337
207M
        SCN_EXPECT(input.size() == 1);
4338
207M
        auto cp = static_cast<char32_t>(input.front());
4339
207M
        if (SCN_UNLIKELY(cp >= invalid_code_point)) {
4340
39.6k
            return invalid_code_point;
4341
39.6k
        }
4342
207M
        return cp;
4343
207M
    }
4344
207M
}
4345
4346
template <typename CharT>
4347
inline constexpr char32_t decode_code_point_exhaustive_valid(
4348
    std::basic_string_view<CharT> input)
4349
110k
{
4350
110k
    if constexpr (sizeof(CharT) == 1) {
4351
110k
        return decode_utf8_code_point_exhaustive_valid(input);
4352
    }
4353
    else if constexpr (sizeof(CharT) == 2) {
4354
        return decode_utf16_code_point_exhaustive_valid(input);
4355
    }
4356
0
    else {
4357
0
        SCN_EXPECT(input.size() == 1);
4358
0
        return static_cast<char32_t>(input.front());
4359
0
    }
4360
110k
}
char32_t scn::v4::detail::decode_code_point_exhaustive_valid<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
4349
110k
{
4350
110k
    if constexpr (sizeof(CharT) == 1) {
4351
110k
        return decode_utf8_code_point_exhaustive_valid(input);
4352
    }
4353
    else if constexpr (sizeof(CharT) == 2) {
4354
        return decode_utf16_code_point_exhaustive_valid(input);
4355
    }
4356
    else {
4357
        SCN_EXPECT(input.size() == 1);
4358
        return static_cast<char32_t>(input.front());
4359
    }
4360
110k
}
Unexecuted instantiation: char32_t scn::v4::detail::decode_code_point_exhaustive_valid<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4361
4362
inline constexpr bool is_cp_space(char32_t cp) noexcept
4363
207M
{
4364
    // Pattern_White_Space property
4365
207M
    return (cp >= 0x09 && cp <= 0x0d) ||
4366
207M
           cp == 0x20 ||    // ASCII space characters
4367
207M
           cp == 0x85 ||    // NEXT LINE (NEL)
4368
207M
           cp == 0x200e ||  // LEFT-TO-RIGHT MARK
4369
207M
           cp == 0x200f ||  // RIGHT-TO-LEFT MARK
4370
207M
           cp == 0x2028 ||  // LINE SEPARATOR
4371
207M
           cp == 0x2029;    // PARAGRAPH SEPARATOR
4372
207M
}
4373
4374
}  // namespace detail
4375
4376
/////////////////////////////////////////////////////////////////
4377
// scan_buffer
4378
/////////////////////////////////////////////////////////////////
4379
4380
namespace detail {
4381
template <typename CharT>
4382
class basic_scan_buffer {
4383
public:
4384
    class forward_iterator;
4385
    class common_forward_iterator;
4386
4387
    using char_type = CharT;
4388
    using range_type =
4389
        ranges::subrange<forward_iterator, ranges::default_sentinel_t>;
4390
    using common_range_type = ranges::subrange<common_forward_iterator>;
4391
4392
    basic_scan_buffer(const basic_scan_buffer&) = delete;
4393
    basic_scan_buffer& operator=(const basic_scan_buffer&) = delete;
4394
    basic_scan_buffer(basic_scan_buffer&&) = delete;
4395
    basic_scan_buffer& operator=(basic_scan_buffer&&) = delete;
4396
0
    virtual ~basic_scan_buffer() = default;
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::~basic_scan_buffer()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::~basic_scan_buffer()
4397
4398
    virtual bool fill() = 0;
4399
4400
    virtual bool sync(std::ptrdiff_t position)
4401
0
    {
4402
0
        SCN_UNUSED(position);
4403
0
        return true;
4404
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::sync(long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::sync(long)
4405
4406
    bool sync_all()
4407
0
    {
4408
0
        return sync(0);
4409
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::sync_all()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::sync_all()
4410
4411
    SCN_NODISCARD std::ptrdiff_t chars_available() const
4412
0
    {
4413
0
        return static_cast<std::ptrdiff_t>(m_putback_buffer.size() +
4414
0
                                           m_current_view.size());
4415
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::chars_available() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::chars_available() const
4416
4417
    SCN_NODISCARD std::basic_string_view<CharT> current_view() const
4418
0
    {
4419
0
        return m_current_view;
4420
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::current_view() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::current_view() const
4421
4422
    SCN_NODISCARD std::basic_string<CharT>& putback_buffer()
4423
0
    {
4424
0
        return m_putback_buffer;
4425
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::putback_buffer()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::putback_buffer()
4426
    SCN_NODISCARD const std::basic_string<CharT>& putback_buffer() const
4427
    {
4428
        return m_putback_buffer;
4429
    }
4430
4431
    SCN_GCC_PUSH
4432
    SCN_GCC_IGNORE("-Warray-bounds")
4433
4434
    SCN_NODISCARD std::basic_string_view<CharT> get_segment_starting_at(
4435
        std::ptrdiff_t pos) const
4436
0
    {
4437
0
        SCN_EXPECT(pos >= 0);
4438
0
        const auto upos = static_cast<std::size_t>(pos);
4439
0
        if (SCN_UNLIKELY(upos < m_putback_buffer.size())) {
4440
0
            return std::basic_string_view<CharT>(m_putback_buffer).substr(upos);
4441
0
        }
4442
0
        const auto start = upos - m_putback_buffer.size();
4443
0
        SCN_EXPECT(start <= m_current_view.size());
4444
0
        return m_current_view.substr(start);
4445
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::get_segment_starting_at(long) const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::get_segment_starting_at(long) const
4446
4447
    SCN_NODISCARD CharT get_character_at(std::ptrdiff_t pos) const
4448
0
    {
4449
0
        SCN_EXPECT(pos >= 0);
4450
0
        const auto upos = static_cast<std::size_t>(pos);
4451
0
        if (SCN_UNLIKELY(upos < m_putback_buffer.size())) {
4452
0
            return m_putback_buffer[upos];
4453
0
        }
4454
0
        const auto start = upos - m_putback_buffer.size();
4455
0
        SCN_EXPECT(start < m_current_view.size());
4456
0
        return m_current_view[start];
4457
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::get_character_at(long) const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::get_character_at(long) const
4458
4459
    SCN_GCC_POP
4460
4461
    SCN_NODISCARD bool is_contiguous() const
4462
0
    {
4463
0
        return m_is_contiguous;
4464
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::is_contiguous() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::is_contiguous() const
4465
4466
    SCN_NODISCARD auto get_contiguous() const
4467
0
    {
4468
0
        SCN_EXPECT(is_contiguous());
4469
0
        return ranges::subrange<const CharT*>{
4470
0
            current_view().data(),
4471
0
            current_view().data() + current_view().size()};
4472
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::get_contiguous() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::get_contiguous() const
4473
4474
    SCN_NODISCARD range_type get();
4475
    SCN_NODISCARD common_range_type get_common_range();
4476
4477
protected:
4478
    friend class forward_iterator;
4479
    friend class common_forward_iterator;
4480
4481
    struct contiguous_tag {};
4482
    struct non_contiguous_tag {};
4483
4484
    basic_scan_buffer(contiguous_tag, std::basic_string_view<char_type> sv)
4485
0
        : m_current_view(sv), m_is_contiguous(true)
4486
0
    {
4487
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<char>::contiguous_tag, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>::contiguous_tag, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4488
4489
    basic_scan_buffer(non_contiguous_tag,
4490
                      std::basic_string_view<char_type> sv = {})
4491
0
        : m_current_view(sv), m_is_contiguous(false)
4492
0
    {
4493
0
    }
4494
4495
    basic_scan_buffer(bool is_contiguous, std::basic_string_view<char_type> sv)
4496
0
        : m_current_view(sv), m_is_contiguous(is_contiguous)
4497
0
    {
4498
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::basic_scan_buffer(bool, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::basic_scan_buffer(bool, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4499
4500
    std::basic_string_view<char_type> m_current_view{};
4501
    std::basic_string<char_type> m_putback_buffer{};
4502
    bool m_is_contiguous{false};
4503
};
4504
4505
template <typename CharT>
4506
class basic_scan_buffer<CharT>::forward_iterator {
4507
public:
4508
    using value_type = CharT;
4509
    using reference = CharT;
4510
    using pointer = CharT*;
4511
    using difference_type = std::ptrdiff_t;
4512
    using iterator_category = std::forward_iterator_tag;
4513
4514
0
    forward_iterator() = default;
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator()
4515
4516
    forward_iterator(basic_scan_buffer<CharT>* parent, std::ptrdiff_t pos)
4517
0
        : m_begin(parent), m_end(nullptr), m_position(pos)
4518
0
    {
4519
0
        SCN_EXPECT(parent);
4520
0
        SCN_EXPECT(!parent->is_contiguous());
4521
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(scn::v4::detail::basic_scan_buffer<char>*, long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(scn::v4::detail::basic_scan_buffer<wchar_t>*, long)
4522
4523
    forward_iterator(std::basic_string_view<CharT> view, std::ptrdiff_t pos)
4524
0
        : m_begin(const_cast<CharT*>(view.data())),
4525
0
          m_end(const_cast<CharT*>(view.data() + view.size())),
4526
0
          m_position(pos)
4527
0
    {
4528
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::forward_iterator(std::__1::basic_string_view<char, std::__1::char_traits<char> >, long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::forward_iterator(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, long)
4529
4530
    std::ptrdiff_t position() const
4531
0
    {
4532
0
        return m_position;
4533
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::position() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::position() const
4534
4535
    bool stores_parent() const
4536
0
    {
4537
0
        assert(m_begin);
4538
0
        return m_end == nullptr;
4539
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::stores_parent() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::stores_parent() const
4540
4541
    basic_scan_buffer<CharT>* parent()
4542
0
    {
4543
0
        SCN_EXPECT(stores_parent());
4544
0
        return static_cast<basic_scan_buffer<CharT>*>(m_begin);
4545
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::parent()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent()
4546
    const basic_scan_buffer<CharT>* parent() const
4547
0
    {
4548
0
        SCN_EXPECT(stores_parent());
4549
0
        return static_cast<const basic_scan_buffer<CharT>*>(m_begin);
4550
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::parent() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::parent() const
4551
4552
    std::basic_string_view<CharT> contiguous_segment() const
4553
0
    {
4554
0
        if (!stores_parent()) {
4555
0
            return make_string_view_from_pointers(
4556
0
                static_cast<const CharT*>(m_begin) + position(),
4557
0
                static_cast<const CharT*>(m_end));
4558
0
        }
4559
0
        return parent()->get_segment_starting_at(position());
4560
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::contiguous_segment() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::contiguous_segment() const
4561
    auto to_contiguous_segment_iterator() const
4562
    {
4563
        return contiguous_segment().data();
4564
    }
4565
4566
    forward_iterator& operator++()
4567
0
    {
4568
0
        ++m_position;
4569
0
        (void)read_at_position();
4570
0
        return *this;
4571
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::operator++()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator++()
4572
4573
    forward_iterator operator++(int)
4574
    {
4575
        auto copy = *this;
4576
        operator++();
4577
        return copy;
4578
    }
4579
4580
    CharT operator*() const
4581
0
    {
4582
0
        SCN_EXPECT(m_begin);
4583
4584
0
        if (!stores_parent()) {
4585
0
            auto ptr = static_cast<const CharT*>(m_begin) + position();
4586
0
            SCN_EXPECT(ptr != m_end);
4587
0
            return *ptr;
4588
0
        }
4589
4590
0
        auto res = read_at_position();
4591
0
        SCN_EXPECT(res);
4592
0
        return parent()->get_character_at(m_position);
4593
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::operator*() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::operator*() const
4594
4595
    forward_iterator& batch_advance(std::ptrdiff_t n)
4596
0
    {
4597
0
        SCN_EXPECT(n >= 0);
4598
0
        m_position += n;
4599
0
        return *this;
4600
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::batch_advance(long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance(long)
4601
4602
    forward_iterator& batch_advance_to(std::ptrdiff_t i)
4603
0
    {
4604
0
        SCN_EXPECT(i >= m_position);
4605
0
        m_position = i;
4606
0
        return *this;
4607
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::batch_advance_to(long)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::batch_advance_to(long)
4608
4609
    friend bool operator==(const forward_iterator& lhs,
4610
                           const forward_iterator& rhs)
4611
0
    {
4612
0
        return lhs.m_begin == rhs.m_begin && lhs.m_position == rhs.m_position;
4613
0
    }
Unexecuted instantiation: scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Unexecuted instantiation: scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
4614
    friend bool operator!=(const forward_iterator& lhs,
4615
                           const forward_iterator& rhs)
4616
0
    {
4617
0
        return !(lhs == rhs);
4618
0
    }
Unexecuted instantiation: scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&)
Unexecuted instantiation: scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&)
4619
4620
    friend bool operator==(const forward_iterator& x,
4621
                           ranges::default_sentinel_t)
4622
0
    {
4623
0
        return x.is_at_end();
4624
0
    }
Unexecuted instantiation: scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Unexecuted instantiation: scn::v4::detail::operator==(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
4625
    friend bool operator==(ranges::default_sentinel_t,
4626
                           const forward_iterator& x)
4627
    {
4628
        return x.is_at_end();
4629
    }
4630
4631
    friend bool operator!=(const forward_iterator& x,
4632
                           ranges::default_sentinel_t)
4633
0
    {
4634
0
        return !x.is_at_end();
4635
0
    }
Unexecuted instantiation: scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<char>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
Unexecuted instantiation: scn::v4::detail::operator!=(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator const&, scn::v4::ranges::default_sentinel_t)
4636
    friend bool operator!=(ranges::default_sentinel_t,
4637
                           const forward_iterator& x)
4638
    {
4639
        return !x.is_at_end();
4640
    }
4641
4642
private:
4643
    friend class basic_scan_buffer<CharT>;
4644
4645
    SCN_NODISCARD bool read_at_position() const
4646
0
    {
4647
0
        SCN_EXPECT(m_begin);
4648
4649
0
        if (!stores_parent()) {
4650
0
            return true;
4651
0
        }
4652
4653
0
        if (SCN_LIKELY(m_position < parent()->chars_available())) {
4654
0
            return true;
4655
0
        }
4656
4657
0
        while (m_position >= parent()->chars_available()) {
4658
0
            if (!const_cast<basic_scan_buffer<CharT>*>(parent())->fill()) {
4659
0
                return false;
4660
0
            }
4661
0
        }
4662
0
        return true;
4663
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::read_at_position() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::read_at_position() const
4664
4665
    SCN_NODISCARD bool is_at_end() const
4666
0
    {
4667
0
        if (m_end) {
4668
0
            return (static_cast<const CharT*>(m_begin) + position()) == m_end;
4669
0
        }
4670
0
        if (!m_begin) {
4671
0
            return true;
4672
0
        }
4673
0
        return !read_at_position();
4674
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::forward_iterator::is_at_end() const
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator::is_at_end() const
4675
4676
    // If m_end is null, m_begin points to the parent scan_buffer
4677
    // Otherwise, [m_begin, m_end) is the range of this iterator (and of
4678
    // the entire range)
4679
    mutable void* m_begin{nullptr};
4680
    mutable void* m_end{nullptr};
4681
    std::ptrdiff_t m_position{0};
4682
};
4683
4684
template <typename CharT>
4685
class basic_scan_buffer<CharT>::common_forward_iterator
4686
    : public basic_scan_buffer<CharT>::forward_iterator {
4687
    using base = basic_scan_buffer<CharT>::forward_iterator;
4688
4689
public:
4690
    common_forward_iterator() = default;
4691
4692
    explicit common_forward_iterator(forward_iterator it)
4693
0
        : base(it), m_is_end(it.is_at_end())
4694
0
    {
4695
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::common_forward_iterator::common_forward_iterator(scn::v4::detail::basic_scan_buffer<char>::forward_iterator)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::common_forward_iterator::common_forward_iterator(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator)
4696
    explicit common_forward_iterator(ranges::default_sentinel_t)
4697
0
        : base(), m_is_end(true)
4698
0
    {
4699
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::common_forward_iterator::common_forward_iterator(scn::v4::ranges::default_sentinel_t)
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::common_forward_iterator::common_forward_iterator(scn::v4::ranges::default_sentinel_t)
4700
4701
    common_forward_iterator& operator++()
4702
    {
4703
        base::operator++();
4704
        m_is_end = base::is_at_end();
4705
        return *this;
4706
    }
4707
4708
    common_forward_iterator operator++(int)
4709
    {
4710
        auto copy = *this;
4711
        operator++();
4712
        return copy;
4713
    }
4714
4715
    common_forward_iterator& batch_advance(std::ptrdiff_t n)
4716
    {
4717
        base::batch_advance(n);
4718
        m_is_end = base::is_at_end();
4719
        return *this;
4720
    }
4721
4722
    common_forward_iterator& batch_advance_to(std::ptrdiff_t i)
4723
    {
4724
        base::batch_advance_to(i);
4725
        m_is_end = base::is_at_end();
4726
        return *this;
4727
    }
4728
4729
    friend bool operator==(const common_forward_iterator& lhs,
4730
                           const common_forward_iterator& rhs)
4731
    {
4732
        if (lhs.m_is_end && rhs.m_is_end) {
4733
            return true;
4734
        }
4735
        if (lhs.m_is_end != rhs.m_is_end) {
4736
            return false;
4737
        }
4738
        return static_cast<const forward_iterator&>(lhs) ==
4739
               static_cast<const forward_iterator&>(rhs);
4740
    }
4741
4742
    friend bool operator!=(const common_forward_iterator& lhs,
4743
                           const common_forward_iterator& rhs)
4744
    {
4745
        return !(lhs == rhs);
4746
    }
4747
4748
private:
4749
    bool m_is_end{};
4750
};
4751
4752
template <typename CharT>
4753
SCN_NODISCARD auto basic_scan_buffer<CharT>::get() -> range_type
4754
0
{
4755
0
    if (is_contiguous()) {
4756
0
        return ranges::subrange{forward_iterator{m_current_view, 0},
4757
0
                                ranges::default_sentinel};
4758
0
    }
4759
0
    return ranges::subrange{forward_iterator{this, 0},
4760
0
                            ranges::default_sentinel};
4761
0
}
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<char>::get()
Unexecuted instantiation: scn::v4::detail::basic_scan_buffer<wchar_t>::get()
4762
4763
template <typename CharT>
4764
SCN_NODISCARD auto basic_scan_buffer<CharT>::get_common_range()
4765
    -> common_range_type
4766
{
4767
    auto r = get();
4768
    return ranges::subrange{common_forward_iterator{r.begin()},
4769
                            common_forward_iterator{r.end()}};
4770
}
4771
4772
static_assert(ranges::forward_range<scan_buffer::range_type>);
4773
4774
template <typename CharT>
4775
class basic_scan_string_buffer : public basic_scan_buffer<CharT> {
4776
    using base = basic_scan_buffer<CharT>;
4777
4778
public:
4779
    basic_scan_string_buffer(std::basic_string_view<CharT> sv)
4780
0
        : base(typename base::contiguous_tag{}, sv)
4781
0
    {
4782
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<char>::basic_scan_string_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<wchar_t>::basic_scan_string_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
4783
4784
    bool fill() override
4785
0
    {
4786
0
        SCN_EXPECT(false);
4787
0
        SCN_UNREACHABLE;
4788
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<char>::fill()
Unexecuted instantiation: scn::v4::detail::basic_scan_string_buffer<wchar_t>::fill()
4789
};
4790
4791
template <typename CharT>
4792
basic_scan_string_buffer(std::basic_string_view<CharT>)
4793
    -> basic_scan_string_buffer<CharT>;
4794
4795
template <typename CharT>
4796
class basic_scan_forward_buffer_base : public basic_scan_buffer<CharT> {
4797
    using base = basic_scan_buffer<CharT>;
4798
4799
protected:
4800
    basic_scan_forward_buffer_base() : base(typename base::non_contiguous_tag{})
4801
    {
4802
    }
4803
};
4804
4805
template <typename I, typename S>
4806
using less_than_compare =
4807
    decltype(SCN_DECLVAL(const I&) < SCN_DECLVAL(const S&));
4808
4809
template <typename Range>
4810
class basic_scan_forward_buffer_impl
4811
    : public basic_scan_forward_buffer_base<detail::char_t<Range>> {
4812
    static_assert(ranges::range<const Range> && std::is_object_v<Range>);
4813
4814
    using _char_type = detail::char_t<Range>;
4815
    using base = basic_scan_forward_buffer_base<_char_type>;
4816
4817
public:
4818
    using char_type = _char_type;
4819
    using range_type = Range;
4820
    using iterator = ranges::iterator_t<const Range>;
4821
    using sentinel = ranges::sentinel_t<const Range>;
4822
4823
    template <
4824
        typename R,
4825
        std::enable_if_t<is_not_self<R, basic_scan_forward_buffer_impl> &&
4826
                         std::is_convertible_v<R, const Range&>>* = nullptr>
4827
    basic_scan_forward_buffer_impl(R&& r)
4828
        : m_range(std::addressof(static_cast<const Range&>(SCN_FWD(r)))),
4829
          m_cursor(ranges::begin(*m_range))
4830
    {
4831
    }
4832
4833
    bool fill() override
4834
    {
4835
        if (m_cursor == ranges::end(*m_range)) {
4836
            return false;
4837
        }
4838
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4839
            SCN_EXPECT(m_cursor < ranges::end(*m_range));
4840
        }
4841
        if (!this->m_current_view.empty()) {
4842
            this->m_putback_buffer.insert(this->m_putback_buffer.end(),
4843
                                          this->m_current_view.begin(),
4844
                                          this->m_current_view.end());
4845
        }
4846
        m_latest = *m_cursor;
4847
        ++m_cursor;
4848
        this->m_current_view = std::basic_string_view<char_type>{&m_latest, 1};
4849
        if constexpr (mp_valid_v<less_than_compare, iterator, sentinel>) {
4850
            SCN_EXPECT(m_cursor <= ranges::end(*m_range));
4851
        }
4852
        return true;
4853
    }
4854
4855
private:
4856
    const Range* m_range;
4857
    iterator m_cursor;
4858
    char_type m_latest{};
4859
};
4860
4861
template <typename R>
4862
basic_scan_forward_buffer_impl(const R&) -> basic_scan_forward_buffer_impl<R>;
4863
4864
struct default_file_tag {};
4865
struct gnu_file_tag {};
4866
struct bsd_file_tag {};
4867
struct musl_file_tag {};
4868
struct win32_file_tag {};
4869
4870
// Non-pretty workaround for MSVC silliness
4871
template <typename F, typename = void>
4872
inline constexpr bool is_gnu_file = false;
4873
template <typename F>
4874
inline constexpr bool
4875
    is_gnu_file<F,
4876
                std::void_t<decltype(SCN_DECLVAL(F)._IO_read_ptr),
4877
                            decltype(SCN_DECLVAL(F)._IO_read_end)>> = true;
4878
4879
template <typename F, typename = void>
4880
inline constexpr bool is_bsd_file = false;
4881
template <typename F>
4882
inline constexpr bool is_bsd_file<
4883
    F,
4884
    std::void_t<decltype(SCN_DECLVAL(F)._p), decltype(SCN_DECLVAL(F)._r)>> =
4885
    true;
4886
4887
template <typename F, typename = void>
4888
inline constexpr bool is_musl_file = false;
4889
template <typename F>
4890
inline constexpr bool is_musl_file<
4891
    F,
4892
    std::void_t<decltype(SCN_DECLVAL(F).rpos), decltype(SCN_DECLVAL(F).rend)>> =
4893
    true;
4894
4895
template <typename F>
4896
inline constexpr bool is_win32_file =
4897
    std::is_same_v<F, std::FILE> && SCN_WINDOWS && !SCN_MINGW;
4898
4899
constexpr auto get_file_tag()
4900
0
{
4901
0
    if constexpr (is_gnu_file<std::FILE>) {
4902
0
        return detail::tag_type<gnu_file_tag>{};
4903
0
    }
4904
0
    else if constexpr (is_bsd_file<std::FILE>) {
4905
0
        return detail::tag_type<bsd_file_tag>{};
4906
0
    }
4907
0
    else if constexpr (is_musl_file<std::FILE>) {
4908
0
        return detail::tag_type<musl_file_tag>{};
4909
0
    }
4910
0
    else if constexpr (is_win32_file<std::FILE>) {
4911
0
        return detail::tag_type<win32_file_tag>{};
4912
0
    }
4913
0
    else {
4914
0
        return detail::tag_type<default_file_tag>{};
4915
0
    }
4916
0
}
4917
4918
template <typename File>
4919
struct stdio_file_interface_base {
4920
0
    explicit constexpr stdio_file_interface_base(File* f) noexcept : file(f) {}
4921
    ~stdio_file_interface_base() = default;
4922
4923
    stdio_file_interface_base(const stdio_file_interface_base&) = delete;
4924
    stdio_file_interface_base& operator=(const stdio_file_interface_base&) =
4925
        delete;
4926
4927
    constexpr stdio_file_interface_base(
4928
        stdio_file_interface_base&& other) noexcept
4929
0
        : file(other.file)
4930
0
    {
4931
0
        other.file = nullptr;
4932
0
    }
4933
    constexpr stdio_file_interface_base& operator=(
4934
        stdio_file_interface_base&& other) noexcept
4935
    {
4936
        file = other.file;
4937
        other.file = nullptr;
4938
        return *this;
4939
    }
4940
4941
    File* file;
4942
};
4943
4944
template <typename File, typename Tag>
4945
struct stdio_file_interface_impl;
4946
4947
template <typename File>
4948
struct stdio_file_interface_impl<File, default_file_tag>
4949
    : stdio_file_interface_base<File> {
4950
    using stdio_file_interface_base<File>::stdio_file_interface_base;
4951
4952
    static constexpr void lock() {}
4953
    static constexpr void unlock() {}
4954
4955
    SCN_NODISCARD static constexpr bool has_buffering()
4956
    {
4957
        return false;
4958
    }
4959
4960
    SCN_NODISCARD std::string_view buffer() const
4961
    {
4962
        return {};
4963
    }
4964
    void unsafe_advance_n(std::ptrdiff_t)
4965
    {
4966
        SCN_EXPECT(false);
4967
        SCN_UNREACHABLE;
4968
    }
4969
    void fill_buffer()
4970
    {
4971
        SCN_EXPECT(false);
4972
        SCN_UNREACHABLE;
4973
    }
4974
4975
    SCN_NODISCARD std::optional<char> read_one()
4976
    {
4977
        auto res = std::fgetc(this->file);
4978
        if (res == EOF) {
4979
            return std::nullopt;
4980
        }
4981
        return static_cast<char>(res);
4982
    }
4983
4984
    void prepare_putback() {}
4985
    void finalize_putback() {}
4986
4987
    SCN_NODISCARD bool putback(char ch)
4988
    {
4989
        return std::ungetc(static_cast<unsigned char>(ch), this->file) != EOF;
4990
    }
4991
};
4992
4993
template <typename File>
4994
struct posix_stdio_file_interface : stdio_file_interface_base<File> {
4995
    using stdio_file_interface_base<File>::stdio_file_interface_base;
4996
4997
    void lock()
4998
0
    {
4999
0
        flockfile(this->file);
5000
0
    }
5001
    void unlock()
5002
0
    {
5003
0
        funlockfile(this->file);
5004
0
    }
5005
5006
    SCN_NODISCARD static constexpr bool has_buffering()
5007
0
    {
5008
0
        return true;
5009
0
    }
5010
5011
    SCN_NODISCARD std::optional<char> read_one()
5012
0
    {
5013
0
        auto res = getc_unlocked(this->file);
5014
0
        if (res == EOF) {
5015
0
            return std::nullopt;
5016
0
        }
5017
0
        return static_cast<char>(res);
5018
0
    }
5019
5020
    void prepare_putback()
5021
0
    {
5022
0
        unlock();
5023
0
    }
5024
    void finalize_putback()
5025
0
    {
5026
0
        lock();
5027
0
    }
5028
5029
    SCN_NODISCARD bool putback(char ch)
5030
0
    {
5031
0
        return std::ungetc(static_cast<unsigned char>(ch), this->file) != EOF;
5032
0
    }
5033
};
5034
5035
template <typename File>
5036
struct stdio_file_interface_impl<File, gnu_file_tag>
5037
    : posix_stdio_file_interface<File> {
5038
    using posix_stdio_file_interface<File>::posix_stdio_file_interface;
5039
5040
    SCN_NODISCARD std::string_view buffer() const
5041
0
    {
5042
0
        return make_string_view_from_pointers(this->file->_IO_read_ptr,
5043
0
                                              this->file->_IO_read_end);
5044
0
    }
5045
    void unsafe_advance_n(std::ptrdiff_t n)
5046
0
    {
5047
0
        SCN_EXPECT(this->file->_IO_read_ptr != nullptr);
5048
0
        SCN_EXPECT(this->file->_IO_read_end - this->file->_IO_read_ptr >= n);
5049
0
        this->file->_IO_read_ptr += n;
5050
0
    }
5051
    void fill_buffer()
5052
0
    {
5053
0
        if (__uflow(this->file) != EOF) {
5054
0
            --this->file->_IO_read_ptr;
5055
0
        }
5056
0
    }
5057
};
5058
5059
template <typename File>
5060
struct stdio_file_interface_impl<File, bsd_file_tag>
5061
    : posix_stdio_file_interface<File> {
5062
    using posix_stdio_file_interface<File>::posix_stdio_file_interface;
5063
5064
    SCN_NODISCARD std::string_view buffer() const
5065
    {
5066
        return {reinterpret_cast<const char*>(this->file->_p),
5067
                static_cast<std::size_t>(this->file->_r)};
5068
    }
5069
    void unsafe_advance_n(std::ptrdiff_t n)
5070
    {
5071
        SCN_EXPECT(this->file->_p != nullptr);
5072
        SCN_EXPECT(this->file->_r >= n);
5073
        this->file->_p += n;
5074
        this->file->_r -= static_cast<int>(n);
5075
    }
5076
    void fill_buffer()
5077
    {
5078
        if (__srget(this->file) != EOF) {
5079
            --this->file->_p;
5080
            ++this->file->_r;
5081
        }
5082
    }
5083
};
5084
5085
template <typename File>
5086
struct stdio_file_interface_impl<File, musl_file_tag>
5087
    : posix_stdio_file_interface<File> {
5088
    using posix_stdio_file_interface<File>::posix_stdio_file_interface;
5089
5090
    SCN_NODISCARD std::string_view buffer() const
5091
    {
5092
        return make_string_view_from_pointers(
5093
            reinterpret_cast<const char*>(this->file->rpos),
5094
            reinterpret_cast<const char*>(this->file->rend));
5095
    }
5096
    void unsafe_advance_n(std::ptrdiff_t n)
5097
    {
5098
        SCN_EXPECT(this->file->rpos != nullptr);
5099
        SCN_EXPECT(this->file->rend - this->file->rpos >= n);
5100
        this->file->rpos += n;
5101
    }
5102
    void fill_buffer()
5103
    {
5104
        if (__uflow(this->file) != EOF) {
5105
            --this->file->rpos;
5106
        }
5107
    }
5108
};
5109
5110
template <typename File>
5111
struct stdio_file_interface_impl<File, win32_file_tag>
5112
    : stdio_file_interface_base<File> {
5113
    using stdio_file_interface_base<File>::stdio_file_interface_base;
5114
5115
    void lock()
5116
    {
5117
        _lock_file(this->file);
5118
    }
5119
    void unlock()
5120
    {
5121
        _unlock_file(this->file);
5122
    }
5123
5124
    SCN_NODISCARD static constexpr bool has_buffering()
5125
    {
5126
        return false;
5127
    }
5128
5129
    SCN_NODISCARD std::string_view buffer() const
5130
    {
5131
        return {};
5132
    }
5133
    void unsafe_advance_n(std::ptrdiff_t n)
5134
    {
5135
        SCN_UNUSED(n);
5136
        SCN_EXPECT(false);
5137
        SCN_UNREACHABLE;
5138
    }
5139
    void fill_buffer()
5140
    {
5141
        SCN_EXPECT(false);
5142
        SCN_UNREACHABLE;
5143
    }
5144
5145
    SCN_NODISCARD std::optional<char> read_one()
5146
    {
5147
        auto res = _fgetc_nolock(this->file);
5148
        if (res == EOF) {
5149
            return std::nullopt;
5150
        }
5151
        return static_cast<char>(res);
5152
    }
5153
5154
    static void prepare_putback() {}
5155
    static void finalize_putback() {}
5156
5157
    SCN_NODISCARD bool putback(char ch)
5158
    {
5159
        return _ungetc_nolock(static_cast<unsigned char>(ch), this->file) !=
5160
               EOF;
5161
    }
5162
};
5163
5164
using stdio_file_interface =
5165
    stdio_file_interface_impl<std::FILE, decltype(get_file_tag())::type>;
5166
5167
template <typename FileInterface>
5168
class basic_scan_file_buffer : public basic_scan_buffer<char> {
5169
    using base = basic_scan_buffer<char>;
5170
5171
public:
5172
    explicit basic_scan_file_buffer(FileInterface file);
5173
    ~basic_scan_file_buffer() override;
5174
5175
    bool fill() override;
5176
5177
    bool sync(std::ptrdiff_t position) override;
5178
5179
private:
5180
    FileInterface m_file;
5181
    std::optional<char_type> m_latest{std::nullopt};
5182
};
5183
5184
SCN_CLANG_PUSH
5185
SCN_CLANG_IGNORE("-Wweak-vtables")
5186
5187
struct scan_file_buffer : public basic_scan_file_buffer<stdio_file_interface> {
5188
    explicit scan_file_buffer(std::FILE* file)
5189
0
        : basic_scan_file_buffer(stdio_file_interface{file})
5190
0
    {
5191
0
    }
5192
};
5193
5194
SCN_CLANG_POP
5195
5196
extern template basic_scan_file_buffer<
5197
    stdio_file_interface>::basic_scan_file_buffer(stdio_file_interface);
5198
extern template basic_scan_file_buffer<
5199
    stdio_file_interface>::~basic_scan_file_buffer();
5200
extern template bool basic_scan_file_buffer<stdio_file_interface>::fill();
5201
extern template bool basic_scan_file_buffer<stdio_file_interface>::sync(
5202
    std::ptrdiff_t);
5203
5204
template <typename CharT>
5205
class basic_scan_ref_buffer : public basic_scan_buffer<CharT> {
5206
    using base = basic_scan_buffer<CharT>;
5207
5208
public:
5209
    basic_scan_ref_buffer(base& other, std::ptrdiff_t starting_pos)
5210
0
        : base(other.is_contiguous(), std::basic_string_view<CharT>{}),
5211
0
          m_other(&other),
5212
0
          m_starting_pos(starting_pos)
5213
0
    {
5214
0
        this->m_current_view = other.get_segment_starting_at(starting_pos);
5215
0
        m_fill_needs_to_propagate = other.get_segment_starting_at(0).end() ==
5216
0
                                    this->m_current_view.end();
5217
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::basic_scan_ref_buffer(scn::v4::detail::basic_scan_buffer<char>&, long)
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::basic_scan_ref_buffer(scn::v4::detail::basic_scan_buffer<wchar_t>&, long)
5218
5219
    basic_scan_ref_buffer(std::basic_string_view<CharT> view)
5220
0
        : base(true, view), m_other(nullptr)
5221
0
    {
5222
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::basic_scan_ref_buffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::basic_scan_ref_buffer(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
5223
5224
    bool fill() override
5225
0
    {
5226
0
        if (!m_other) {
5227
0
            return false;
5228
0
        }
5229
0
        SCN_EXPECT(m_starting_pos >= 0);
5230
5231
0
        if (m_fill_needs_to_propagate) {
5232
0
            auto ret = m_other->fill();
5233
0
            this->m_current_view = m_other->current_view();
5234
0
            this->m_putback_buffer = m_other->putback_buffer().substr(
5235
0
                static_cast<std::size_t>(m_starting_pos));
5236
0
            return ret;
5237
0
        }
5238
5239
0
        m_fill_needs_to_propagate = true;
5240
0
        this->m_putback_buffer = std::basic_string<CharT>{this->m_current_view};
5241
0
        this->m_current_view = m_other->current_view();
5242
0
        return true;
5243
0
    }
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<char>::fill()
Unexecuted instantiation: scn::v4::detail::basic_scan_ref_buffer<wchar_t>::fill()
5244
5245
private:
5246
    base* m_other;
5247
    std::ptrdiff_t m_starting_pos{-1};
5248
    bool m_fill_needs_to_propagate{false};
5249
};
5250
5251
template <typename CharT>
5252
basic_scan_ref_buffer(basic_scan_buffer<CharT>&, std::ptrdiff_t)
5253
    -> basic_scan_ref_buffer<CharT>;
5254
5255
template <typename CharT>
5256
basic_scan_ref_buffer(std::basic_string_view<CharT>)
5257
    -> basic_scan_ref_buffer<CharT>;
5258
5259
template <typename Range>
5260
auto make_string_scan_buffer(const Range& range)
5261
{
5262
    return basic_scan_string_buffer(std::basic_string_view<char_t<Range>>{
5263
        ranges::data(range), ranges::size(range)});
5264
}
5265
5266
template <typename Range>
5267
auto make_forward_scan_buffer(const Range& range)
5268
{
5269
    return basic_scan_forward_buffer_impl(range);
5270
}
5271
5272
inline auto make_file_scan_buffer(std::FILE* file)
5273
0
{
5274
0
    return scan_file_buffer(file);
5275
0
}
5276
}  // namespace detail
5277
5278
/////////////////////////////////////////////////////////////////
5279
// make_scan_buffer
5280
/////////////////////////////////////////////////////////////////
5281
5282
/**
5283
 * \defgroup scannable Scannable sources
5284
 *
5285
 * \brief Description of the `scannable_range` and `scannable_source`
5286
 * concepts.
5287
 *
5288
 * A range is considered scannable, if it models at least `forward_range`,
5289
 * and its character type is correct (its value type is the same as the one
5290
 * of the format string).
5291
 * If the range additionally models `contiguous_range` and `sized_range`,
5292
 * additional optimizations are enabled.
5293
 *
5294
 * \code{.cpp}
5295
 * // Exposition only
5296
 * template <typename Range, typename CharT>
5297
 * concept scannable_range =
5298
 *     ranges::forward_range<Range> &&
5299
 *     std::same_as<ranges::range_value_t<Range>, CharT>;
5300
 * \endcode
5301
 *
5302
 * Additionally, files (`std::FILE*`) can be scanned from.
5303
 * Files are always considered to be narrow (`char`-oriented).
5304
 * Thus, the entire concept is:
5305
 *
5306
 * \code{.cpp}
5307
 * // Exposition only
5308
 * template <typename Source, typename CharT>
5309
 * concept scannable_source =
5310
 *   (std::same_as<std::remove_cvref_t<Source>, std::FILE*> &&
5311
 *    std::same_as<CharT, char>) ||
5312
 *   scannable_range<Source, CharT>;
5313
 * \endcode
5314
 */
5315
5316
/**
5317
 * Tag type to indicate an invalid range given to `scn::scan`
5318
 *
5319
 * \ingroup scannable
5320
 */
5321
struct invalid_input_range {};
5322
5323
struct invalid_char_type : invalid_input_range {};
5324
struct custom_char_traits : invalid_input_range {};
5325
struct file_marker_found : invalid_input_range {};
5326
struct insufficient_range : invalid_input_range {};
5327
5328
namespace detail {
5329
template <typename CharT>
5330
inline constexpr bool is_valid_char_type =
5331
    std::is_same_v<std::remove_const_t<CharT>, char> ||
5332
    std::is_same_v<std::remove_const_t<CharT>, wchar_t>;
5333
5334
namespace _make_scan_buffer {
5335
// buffer -> ref_buffer
5336
inline auto impl(scan_buffer::range_type r, priority_tag<4>) noexcept
5337
    -> basic_scan_ref_buffer<char>
5338
0
{
5339
0
    if (!r.begin().stores_parent()) {
5340
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
5341
0
    }
5342
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
5343
0
}
5344
inline auto impl(wscan_buffer::range_type r, priority_tag<4>) noexcept
5345
    -> basic_scan_ref_buffer<wchar_t>
5346
0
{
5347
0
    if (!r.begin().stores_parent()) {
5348
0
        return basic_scan_ref_buffer{r.begin().contiguous_segment()};
5349
0
    }
5350
0
    return basic_scan_ref_buffer{*r.begin().parent(), r.begin().position()};
5351
0
}
5352
5353
// string_view -> string_buffer
5354
template <typename CharT>
5355
auto impl(std::basic_string_view<CharT> r, priority_tag<3>) noexcept
5356
151k
{
5357
151k
    if constexpr (is_valid_char_type<CharT>) {
5358
151k
        return r;
5359
        // return make_string_scan_buffer(r);
5360
    }
5361
    else {
5362
        return invalid_char_type{};
5363
    }
5364
151k
}
auto scn::v4::detail::_make_scan_buffer::impl<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::detail::priority_tag<3ul>)
Line
Count
Source
5356
50.5k
{
5357
50.5k
    if constexpr (is_valid_char_type<CharT>) {
5358
50.5k
        return r;
5359
        // return make_string_scan_buffer(r);
5360
    }
5361
    else {
5362
        return invalid_char_type{};
5363
    }
5364
50.5k
}
auto scn::v4::detail::_make_scan_buffer::impl<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::detail::priority_tag<3ul>)
Line
Count
Source
5356
101k
{
5357
101k
    if constexpr (is_valid_char_type<CharT>) {
5358
101k
        return r;
5359
        // return make_string_scan_buffer(r);
5360
    }
5361
    else {
5362
        return invalid_char_type{};
5363
    }
5364
101k
}
5365
5366
// string& -> string_buffer
5367
template <typename CharT, typename Traits, typename Allocator>
5368
auto impl(const std::basic_string<CharT, Traits, Allocator>& r,
5369
          priority_tag<3>) noexcept
5370
0
{
5371
    if constexpr (!is_valid_char_type<CharT>) {
5372
        return invalid_char_type{};
5373
    }
5374
    else if constexpr (!std::is_same_v<Traits, std::char_traits<CharT>>) {
5375
        return custom_char_traits{};
5376
    }
5377
0
    else {
5378
0
        return std::basic_string_view<CharT>{r.data(), r.size()};
5379
0
    }
5380
0
}
5381
5382
// String literals:
5383
// CharT(&)[] -> string_buffer
5384
template <typename CharT,
5385
          std::size_t N,
5386
          std::enable_if_t<is_valid_char_type<CharT>>* = nullptr>
5387
auto impl(const CharT (&r)[N], priority_tag<3>) noexcept
5388
{
5389
    return std::basic_string_view<CharT>{r, N - 1};
5390
}
5391
5392
// FILE* -> file_buffer
5393
inline auto impl(std::FILE* file, priority_tag<3>)
5394
0
{
5395
0
    return make_file_scan_buffer(file);
5396
0
}
5397
5398
// contiguous + sized -> string_buffer
5399
template <typename Range,
5400
          std::enable_if_t<ranges::contiguous_range<Range> &&
5401
                           ranges::sized_range<Range>>* = nullptr>
5402
auto impl(const Range& r, priority_tag<2>)
5403
0
{
5404
0
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5405
0
        return std::basic_string_view<detail::char_t<Range>>{ranges::data(r),
5406
0
                                                             ranges::size(r)};
5407
    }
5408
    else {
5409
        return invalid_char_type{};
5410
    }
5411
0
}
Unexecuted instantiation: _ZN3scn2v46detail17_make_scan_buffer4implINS0_6ranges6detail9subrange_8subrangeIPKcS9_EETnPNSt3__19enable_ifIXaasr6rangesE16contiguous_rangeIT_Esr6rangesE11sized_rangeISD_EEvE4typeELPv0EEEDaRKSD_NS1_12priority_tagILm2EEE
Unexecuted instantiation: _ZN3scn2v46detail17_make_scan_buffer4implINS0_6ranges6detail9subrange_8subrangeIPKwS9_EETnPNSt3__19enable_ifIXaasr6rangesE16contiguous_rangeIT_Esr6rangesE11sized_rangeISD_EEvE4typeELPv0EEEDaRKSD_NS1_12priority_tagILm2EEE
5412
5413
// !contiguous + random-access + iterator can be made into a ptr
5414
// for MSVC debug iterators
5415
//   -> string_buffer
5416
template <typename Range,
5417
          std::enable_if_t<!ranges::contiguous_range<Range> &&
5418
                           ranges::random_access_range<Range> &&
5419
                           can_make_address_from_iterator<
5420
                               ranges::iterator_t<Range>>>* = nullptr>
5421
auto impl(const Range& r, priority_tag<1>)
5422
{
5423
    if constexpr (is_valid_char_type<detail::char_t<Range>>) {
5424
        return make_string_view_from_pointers(to_address(ranges::begin(r)),
5425
                                              to_address(ranges::end(r)));
5426
    }
5427
    else {
5428
        return invalid_char_type{};
5429
    }
5430
}
5431
5432
// forward -> forward_buffer<R>
5433
template <typename Range>
5434
auto impl(const Range& r, priority_tag<0>)
5435
{
5436
    if constexpr (std::is_same_v<Range, file_marker>) {
5437
        return file_marker_found{};
5438
    }
5439
    else if constexpr (!ranges::forward_range<Range>) {
5440
        if constexpr (ranges::range<Range>) {
5441
            return insufficient_range{};
5442
        }
5443
        else {
5444
            return invalid_input_range{};
5445
        }
5446
    }
5447
    else if constexpr (!is_valid_char_type<detail::char_t<Range>>) {
5448
        return invalid_char_type{};
5449
    }
5450
    else {
5451
        return make_forward_scan_buffer(r);
5452
    }
5453
}
5454
}  // namespace _make_scan_buffer
5455
5456
template <typename Range>
5457
inline constexpr bool is_scannable_range =
5458
    !std::is_base_of_v<invalid_input_range,
5459
                       decltype(_make_scan_buffer::impl(
5460
                                    SCN_DECLVAL(const Range&)),
5461
                                priority_tag<4>{})>;
5462
5463
template <typename Range>
5464
auto make_scan_buffer(const Range& range)
5465
151k
{
5466
151k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5467
5468
151k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5469
151k
                  "\n"
5470
151k
                  "Unsupported range type given as input to a scanning "
5471
151k
                  "function.\n"
5472
151k
                  "A range needs to have a character type (value type) "
5473
151k
                  "of either `char` or `wchar_t` to be scannable.\n"
5474
151k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5475
151k
                  "to be included.\n"
5476
151k
                  "See the scnlib documentation for more details.");
5477
151k
    static_assert(
5478
151k
        !std::is_same_v<T, custom_char_traits>,
5479
151k
        "\n"
5480
151k
        "Unsupported range type given as input to a scanning "
5481
151k
        "function.\n"
5482
151k
        "String types (std::basic_string, and std::basic_string_view) "
5483
151k
        "need to use std::char_traits. Strings with custom Traits are "
5484
151k
        "not supported.");
5485
151k
    static_assert(!std::is_same_v<T, file_marker_found>,
5486
151k
                  "\n"
5487
151k
                  "Unsupported range type given as input to a scanning "
5488
151k
                  "function.\n"
5489
151k
                  "file_marker_found cannot be used as an "
5490
151k
                  "source range type to scn::scan.\n"
5491
151k
                  "To read from stdin, use scn::input or scn::prompt, "
5492
151k
                  "and do not provide an explicit source range, "
5493
151k
                  "or use scn::scan with a FILE* directly.");
5494
151k
    static_assert(!std::is_same_v<T, insufficient_range>,
5495
151k
                  "\n"
5496
151k
                  "Unsupported range type given as input to a scanning "
5497
151k
                  "function.\n"
5498
151k
                  "In order to be scannable, a range needs to satisfy "
5499
151k
                  "`forward_range`. `input_range` is not sufficient.");
5500
151k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5501
151k
                  "\n"
5502
151k
                  "Unsupported range type given as input to a scanning "
5503
151k
                  "function.\n"
5504
151k
                  "A range needs to model forward_range and have a valid "
5505
151k
                  "character type (char or wchar_t) to be scannable.\n"
5506
151k
                  "Examples of scannable ranges are std::string, "
5507
151k
                  "std::string_view, "
5508
151k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5509
151k
                  "See the scnlib documentation for more details.");
5510
5511
151k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5512
151k
}
auto scn::v4::detail::make_scan_buffer<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> > const&)
Line
Count
Source
5465
50.5k
{
5466
50.5k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5467
5468
50.5k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5469
50.5k
                  "\n"
5470
50.5k
                  "Unsupported range type given as input to a scanning "
5471
50.5k
                  "function.\n"
5472
50.5k
                  "A range needs to have a character type (value type) "
5473
50.5k
                  "of either `char` or `wchar_t` to be scannable.\n"
5474
50.5k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5475
50.5k
                  "to be included.\n"
5476
50.5k
                  "See the scnlib documentation for more details.");
5477
50.5k
    static_assert(
5478
50.5k
        !std::is_same_v<T, custom_char_traits>,
5479
50.5k
        "\n"
5480
50.5k
        "Unsupported range type given as input to a scanning "
5481
50.5k
        "function.\n"
5482
50.5k
        "String types (std::basic_string, and std::basic_string_view) "
5483
50.5k
        "need to use std::char_traits. Strings with custom Traits are "
5484
50.5k
        "not supported.");
5485
50.5k
    static_assert(!std::is_same_v<T, file_marker_found>,
5486
50.5k
                  "\n"
5487
50.5k
                  "Unsupported range type given as input to a scanning "
5488
50.5k
                  "function.\n"
5489
50.5k
                  "file_marker_found cannot be used as an "
5490
50.5k
                  "source range type to scn::scan.\n"
5491
50.5k
                  "To read from stdin, use scn::input or scn::prompt, "
5492
50.5k
                  "and do not provide an explicit source range, "
5493
50.5k
                  "or use scn::scan with a FILE* directly.");
5494
50.5k
    static_assert(!std::is_same_v<T, insufficient_range>,
5495
50.5k
                  "\n"
5496
50.5k
                  "Unsupported range type given as input to a scanning "
5497
50.5k
                  "function.\n"
5498
50.5k
                  "In order to be scannable, a range needs to satisfy "
5499
50.5k
                  "`forward_range`. `input_range` is not sufficient.");
5500
50.5k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5501
50.5k
                  "\n"
5502
50.5k
                  "Unsupported range type given as input to a scanning "
5503
50.5k
                  "function.\n"
5504
50.5k
                  "A range needs to model forward_range and have a valid "
5505
50.5k
                  "character type (char or wchar_t) to be scannable.\n"
5506
50.5k
                  "Examples of scannable ranges are std::string, "
5507
50.5k
                  "std::string_view, "
5508
50.5k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5509
50.5k
                  "See the scnlib documentation for more details.");
5510
5511
50.5k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5512
50.5k
}
auto scn::v4::detail::make_scan_buffer<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > const&)
Line
Count
Source
5465
101k
{
5466
101k
    using T = decltype(_make_scan_buffer::impl(range, priority_tag<4>{}));
5467
5468
101k
    static_assert(!std::is_same_v<T, invalid_char_type>,
5469
101k
                  "\n"
5470
101k
                  "Unsupported range type given as input to a scanning "
5471
101k
                  "function.\n"
5472
101k
                  "A range needs to have a character type (value type) "
5473
101k
                  "of either `char` or `wchar_t` to be scannable.\n"
5474
101k
                  "For proper `wchar_t` support, <scn/xchar.h> needs "
5475
101k
                  "to be included.\n"
5476
101k
                  "See the scnlib documentation for more details.");
5477
101k
    static_assert(
5478
101k
        !std::is_same_v<T, custom_char_traits>,
5479
101k
        "\n"
5480
101k
        "Unsupported range type given as input to a scanning "
5481
101k
        "function.\n"
5482
101k
        "String types (std::basic_string, and std::basic_string_view) "
5483
101k
        "need to use std::char_traits. Strings with custom Traits are "
5484
101k
        "not supported.");
5485
101k
    static_assert(!std::is_same_v<T, file_marker_found>,
5486
101k
                  "\n"
5487
101k
                  "Unsupported range type given as input to a scanning "
5488
101k
                  "function.\n"
5489
101k
                  "file_marker_found cannot be used as an "
5490
101k
                  "source range type to scn::scan.\n"
5491
101k
                  "To read from stdin, use scn::input or scn::prompt, "
5492
101k
                  "and do not provide an explicit source range, "
5493
101k
                  "or use scn::scan with a FILE* directly.");
5494
101k
    static_assert(!std::is_same_v<T, insufficient_range>,
5495
101k
                  "\n"
5496
101k
                  "Unsupported range type given as input to a scanning "
5497
101k
                  "function.\n"
5498
101k
                  "In order to be scannable, a range needs to satisfy "
5499
101k
                  "`forward_range`. `input_range` is not sufficient.");
5500
101k
    static_assert(!std::is_same_v<T, invalid_input_range>,
5501
101k
                  "\n"
5502
101k
                  "Unsupported range type given as input to a scanning "
5503
101k
                  "function.\n"
5504
101k
                  "A range needs to model forward_range and have a valid "
5505
101k
                  "character type (char or wchar_t) to be scannable.\n"
5506
101k
                  "Examples of scannable ranges are std::string, "
5507
101k
                  "std::string_view, "
5508
101k
                  "std::vector<char>, and scn::istreambuf_view.\n"
5509
101k
                  "See the scnlib documentation for more details.");
5510
5511
101k
    return _make_scan_buffer::impl(range, priority_tag<4>{});
5512
101k
}
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> const&)
Unexecuted instantiation: auto scn::v4::detail::make_scan_buffer<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> const&)
5513
5514
template <
5515
    typename Range,
5516
    std::enable_if_t<
5517
        !std::is_reference_v<Range> && !ranges::borrowed_range<Range> &&
5518
        !std::is_same_v<std::FILE*, std::remove_reference_t<Range>>>* = nullptr>
5519
auto make_scan_buffer(Range&&) = delete;
5520
}  // namespace detail
5521
5522
/////////////////////////////////////////////////////////////////
5523
// Argument type erasure
5524
/////////////////////////////////////////////////////////////////
5525
5526
namespace detail {
5527
enum class arg_type : unsigned char {
5528
    none_type,
5529
    schar_type,
5530
    short_type,
5531
    int_type,
5532
    long_type,
5533
    llong_type,
5534
    int128_type,
5535
    uchar_type,
5536
    ushort_type,
5537
    uint_type,
5538
    ulong_type,
5539
    ullong_type,
5540
    uint128_type,
5541
    bool_type,
5542
    narrow_character_type,
5543
    wide_character_type,
5544
    code_point_type,
5545
    pointer_type,
5546
    float_type,
5547
    double_type,
5548
    ldouble_type,
5549
    float16_type,
5550
    float32_type,
5551
    float64_type,
5552
    float128_type,
5553
    bfloat16_type,
5554
    // Only a single string_view_type,
5555
    // no separate narrow/wide versions,
5556
    // because only one of them is valid for each CharT
5557
    string_view_type,
5558
    narrow_string_type,
5559
    wide_string_type,
5560
    custom_type,
5561
    last_type = custom_type
5562
};
5563
5564
template <typename>
5565
inline constexpr bool is_type_disabled = SCN_DISABLE_TYPE_CUSTOM;
5566
5567
template <typename CharT>
5568
inline constexpr bool is_type_disabled<basic_regex_matches<CharT>> =
5569
    SCN_DISABLE_REGEX;
5570
5571
template <typename T, typename CharT>
5572
struct arg_type_constant
5573
    : std::integral_constant<arg_type, arg_type::custom_type> {
5574
    using type = T;
5575
};
5576
5577
#define SCN_TYPE_CONSTANT(Type, C, Disabled)              \
5578
    template <typename CharT>                             \
5579
    struct arg_type_constant<Type, CharT>                 \
5580
        : std::integral_constant<arg_type, arg_type::C> { \
5581
        using type = Type;                                \
5582
    };                                                    \
5583
    template <>                                           \
5584
    inline constexpr bool is_type_disabled<Type> = Disabled
5585
5586
SCN_TYPE_CONSTANT(signed char, schar_type, SCN_DISABLE_TYPE_SCHAR);
5587
SCN_TYPE_CONSTANT(short, short_type, SCN_DISABLE_TYPE_SHORT);
5588
SCN_TYPE_CONSTANT(int, int_type, SCN_DISABLE_TYPE_INT);
5589
SCN_TYPE_CONSTANT(long, long_type, SCN_DISABLE_TYPE_LONG);
5590
SCN_TYPE_CONSTANT(long long, llong_type, SCN_DISABLE_TYPE_LONG_LONG);
5591
SCN_TYPE_CONSTANT(unsigned char, uchar_type, SCN_DISABLE_TYPE_UCHAR);
5592
SCN_TYPE_CONSTANT(unsigned short, ushort_type, SCN_DISABLE_TYPE_USHORT);
5593
SCN_TYPE_CONSTANT(unsigned int, uint_type, SCN_DISABLE_TYPE_UINT);
5594
SCN_TYPE_CONSTANT(unsigned long, ulong_type, SCN_DISABLE_TYPE_ULONG);
5595
SCN_TYPE_CONSTANT(unsigned long long, ullong_type, SCN_DISABLE_TYPE_ULONG_LONG);
5596
SCN_TYPE_CONSTANT(bool, bool_type, SCN_DISABLE_TYPE_BOOL);
5597
SCN_TYPE_CONSTANT(char, narrow_character_type, SCN_DISABLE_TYPE_CHAR);
5598
SCN_TYPE_CONSTANT(wchar_t, wide_character_type, SCN_DISABLE_TYPE_CHAR);
5599
SCN_TYPE_CONSTANT(char32_t, code_point_type, SCN_DISABLE_TYPE_CHAR32);
5600
SCN_TYPE_CONSTANT(void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
5601
SCN_TYPE_CONSTANT(const void*, pointer_type, SCN_DISABLE_TYPE_POINTER);
5602
SCN_TYPE_CONSTANT(float, float_type, SCN_DISABLE_TYPE_FLOAT);
5603
SCN_TYPE_CONSTANT(double, double_type, SCN_DISABLE_TYPE_DOUBLE);
5604
SCN_TYPE_CONSTANT(long double, ldouble_type, SCN_DISABLE_TYPE_LONG_DOUBLE);
5605
SCN_TYPE_CONSTANT(std::string_view,
5606
                  string_view_type,
5607
                  SCN_DISABLE_TYPE_STRING_VIEW);
5608
SCN_TYPE_CONSTANT(std::wstring_view,
5609
                  string_view_type,
5610
                  SCN_DISABLE_TYPE_STRING_VIEW);
5611
SCN_TYPE_CONSTANT(std::string, narrow_string_type, SCN_DISABLE_TYPE_STRING);
5612
SCN_TYPE_CONSTANT(std::wstring, wide_string_type, SCN_DISABLE_TYPE_STRING);
5613
5614
#if SCN_HAS_INT128
5615
SCN_TYPE_CONSTANT(int128, int128_type, SCN_DISABLE_TYPE_INT128);
5616
SCN_TYPE_CONSTANT(uint128, uint128_type, SCN_DISABLE_TYPE_UINT128);
5617
#endif
5618
5619
#if SCN_HAS_STD_F16
5620
SCN_TYPE_CONSTANT(std::float16_t, float16_type, SCN_DISABLE_TYPE_FLOAT16);
5621
#endif
5622
#if SCN_HAS_STD_F32
5623
SCN_TYPE_CONSTANT(std::float32_t, float32_type, SCN_DISABLE_TYPE_FLOAT32);
5624
#endif
5625
#if SCN_HAS_STD_F64
5626
SCN_TYPE_CONSTANT(std::float64_t, float64_type, SCN_DISABLE_TYPE_FLOAT64);
5627
#endif
5628
#if SCN_HAS_STD_F128
5629
SCN_TYPE_CONSTANT(std::float128_t, float128_type, SCN_DISABLE_TYPE_FLOAT128);
5630
#endif
5631
#if SCN_HAS_STD_BF16
5632
SCN_TYPE_CONSTANT(std::bfloat16_t, bfloat16_type, SCN_DISABLE_TYPE_BFLOAT16);
5633
#endif
5634
5635
#undef SCN_TYPE_CONSTANT
5636
5637
struct custom_value_type {
5638
    void* value;
5639
    auto (*scan)(void* arg, void* pctx, void* ctx) -> scan_expected<void>;
5640
};
5641
5642
struct unscannable {};
5643
struct unscannable_char : unscannable {};
5644
struct unscannable_const : unscannable {};
5645
struct unscannable_disabled : unscannable {
5646
    unscannable_disabled() = default;
5647
5648
    template <typename T>
5649
    constexpr unscannable_disabled(T&&)
5650
    {
5651
    }
5652
};
5653
5654
struct needs_context_tag {};
5655
5656
template <typename Context>
5657
struct context_tag {
5658
    using type = Context;
5659
};
5660
5661
template <typename T, typename Context>
5662
struct custom_wrapper {
5663
    using context_type = Context;
5664
    T& val;
5665
};
5666
5667
template <typename T, typename Scanner, typename ParseCtx>
5668
scan_expected<void> parse_custom_arg(T&, Scanner& s, ParseCtx& pctx)
5669
{
5670
#if SCN_HAS_EXCEPTIONS
5671
    auto fmt_it = pctx.begin();
5672
    try {
5673
        fmt_it = s.parse(pctx);
5674
    }
5675
    catch (const detail::scan_format_string_error_base& ex) {
5676
        SCN_CLANG_PUSH
5677
        SCN_CLANG_IGNORE("-Wexit-time-destructors")
5678
        // scan_error takes a const char*.
5679
        // scan_format_string_error (or, actually, std::runtime_error)
5680
        // stores a reference-counted string,
5681
        // that will go out of scope here.
5682
        // We need to provide a const char* that will stay in scope.
5683
        // If scan_format_string_error was thrown with a string literal,
5684
        // use that, otherwise refer to a thread_local std::string
5685
        if (const char* m = get_internal_literal_msg(ex)) {
5686
            return unexpected_scan_error(scan_error::invalid_format_string, m);
5687
        }
5688
        thread_local std::string err_msg{};
5689
        err_msg = ex.what();
5690
        return unexpected_scan_error(scan_error::invalid_format_string,
5691
                                     err_msg.c_str());
5692
        SCN_CLANG_POP
5693
    }
5694
#else
5695
    auto fmt_it = s.parse(pctx_ref);
5696
#endif
5697
    if (auto e = pctx.get_error(); SCN_UNLIKELY(!e)) {
5698
        return e;
5699
    }
5700
    pctx.advance_to(fmt_it);
5701
    return {};
5702
}
5703
5704
class arg_value {
5705
public:
5706
    // trivial default initialization in constexpr
5707
#if defined(__cpp_constexpr) && __cpp_constexpr >= 201907L && \
5708
    SCN_STD > SCN_STD_20
5709
    constexpr arg_value() = default;
5710
#else
5711
99.8k
    arg_value() = default;
5712
#endif
5713
5714
    template <typename T>
5715
151k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
151k
    {
5717
151k
    }
scn::v4::detail::arg_value::arg_value<char>(char&)
Line
Count
Source
5715
5.61k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
5.61k
    {
5717
5.61k
    }
scn::v4::detail::arg_value::arg_value<int>(int&)
Line
Count
Source
5715
16.8k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
16.8k
    {
5717
16.8k
    }
scn::v4::detail::arg_value::arg_value<unsigned int>(unsigned int&)
Line
Count
Source
5715
16.8k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
16.8k
    {
5717
16.8k
    }
scn::v4::detail::arg_value::arg_value<double>(double&)
Line
Count
Source
5715
16.8k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
16.8k
    {
5717
16.8k
    }
scn::v4::detail::arg_value::arg_value<bool>(bool&)
Line
Count
Source
5715
16.8k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
16.8k
    {
5717
16.8k
    }
scn::v4::detail::arg_value::arg_value<void*>(void*&)
Line
Count
Source
5715
16.8k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
16.8k
    {
5717
16.8k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5715
16.8k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
16.8k
    {
5717
16.8k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5715
16.8k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
16.8k
    {
5717
16.8k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5715
5.61k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
5.61k
    {
5717
5.61k
    }
scn::v4::detail::arg_value::arg_value<wchar_t>(wchar_t&)
Line
Count
Source
5715
11.2k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
11.2k
    {
5717
11.2k
    }
scn::v4::detail::arg_value::arg_value<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5715
11.2k
    explicit constexpr arg_value(T& val) : ref_value{std::addressof(val)}
5716
11.2k
    {
5717
11.2k
    }
5718
5719
    template <typename T, typename Context>
5720
    explicit constexpr arg_value(custom_wrapper<T, Context> val)
5721
        : custom_value{static_cast<void*>(&val.val),
5722
                       scan_custom_arg<T, Context>}
5723
    {
5724
    }
5725
5726
    arg_value(unscannable);
5727
    arg_value(unscannable_char);
5728
    arg_value(unscannable_const);
5729
    arg_value(unscannable_disabled);
5730
5731
    union {
5732
        void* ref_value{nullptr};
5733
        custom_value_type custom_value;
5734
    };
5735
5736
private:
5737
    template <typename T, typename Context>
5738
    static scan_expected<void> scan_custom_arg(void* arg, void* pctx, void* ctx)
5739
    {
5740
        static_assert(!is_type_disabled<T>,
5741
                      "Scanning of custom types is disabled by "
5742
                      "SCN_DISABLE_TYPE_CUSTOM");
5743
        SCN_EXPECT(arg && pctx && ctx);
5744
5745
        using context_type = Context;
5746
        using parse_context_type = typename context_type::parse_context_type;
5747
        using scanner_type = typename context_type::template scanner_type<T>;
5748
5749
        auto s = scanner_type{};
5750
5751
        auto& arg_ref = *static_cast<T*>(arg);
5752
        auto& pctx_ref = *static_cast<parse_context_type*>(pctx);
5753
        auto& ctx_ref = *static_cast<context_type*>(ctx);
5754
5755
        SCN_TRY_DISCARD(parse_custom_arg(arg_ref, s, pctx_ref));
5756
        SCN_TRY(it, s.scan(arg_ref, ctx_ref));
5757
        ctx_ref.advance_to(SCN_MOVE(it));
5758
5759
        return {};
5760
    }
5761
};
5762
5763
template <typename CharT>
5764
struct arg_mapper {
5765
    using char_type = CharT;
5766
    using other_char_type =
5767
        std::conditional_t<std::is_same_v<char_type, char>, wchar_t, char>;
5768
5769
#define SCN_ARG_MAPPER(T)                                                    \
5770
    static auto map(T& val)                                                  \
5771
        -> std::conditional_t<is_type_disabled<T>, unscannable_disabled, T&> \
5772
146k
    {                                                                        \
5773
146k
        return val;                                                          \
5774
146k
    }
scn::v4::detail::arg_mapper<char>::map(int&)
Line
Count
Source
5772
5.61k
    {                                                                        \
5773
5.61k
        return val;                                                          \
5774
5.61k
    }
scn::v4::detail::arg_mapper<char>::map(unsigned int&)
Line
Count
Source
5772
5.61k
    {                                                                        \
5773
5.61k
        return val;                                                          \
5774
5.61k
    }
scn::v4::detail::arg_mapper<char>::map(double&)
Line
Count
Source
5772
5.61k
    {                                                                        \
5773
5.61k
        return val;                                                          \
5774
5.61k
    }
scn::v4::detail::arg_mapper<char>::map(bool&)
Line
Count
Source
5772
5.61k
    {                                                                        \
5773
5.61k
        return val;                                                          \
5774
5.61k
    }
scn::v4::detail::arg_mapper<char>::map(void*&)
Line
Count
Source
5772
5.61k
    {                                                                        \
5773
5.61k
        return val;                                                          \
5774
5.61k
    }
scn::v4::detail::arg_mapper<char>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5772
5.61k
    {                                                                        \
5773
5.61k
        return val;                                                          \
5774
5.61k
    }
scn::v4::detail::arg_mapper<char>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5772
5.61k
    {                                                                        \
5773
5.61k
        return val;                                                          \
5774
5.61k
    }
scn::v4::detail::arg_mapper<char>::map(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5772
5.61k
    {                                                                        \
5773
5.61k
        return val;                                                          \
5774
5.61k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(wchar_t&)
Line
Count
Source
5772
11.2k
    {                                                                        \
5773
11.2k
        return val;                                                          \
5774
11.2k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(int&)
Line
Count
Source
5772
11.2k
    {                                                                        \
5773
11.2k
        return val;                                                          \
5774
11.2k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(unsigned int&)
Line
Count
Source
5772
11.2k
    {                                                                        \
5773
11.2k
        return val;                                                          \
5774
11.2k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(double&)
Line
Count
Source
5772
11.2k
    {                                                                        \
5773
11.2k
        return val;                                                          \
5774
11.2k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(bool&)
Line
Count
Source
5772
11.2k
    {                                                                        \
5773
11.2k
        return val;                                                          \
5774
11.2k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(void*&)
Line
Count
Source
5772
11.2k
    {                                                                        \
5773
11.2k
        return val;                                                          \
5774
11.2k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5772
11.2k
    {                                                                        \
5773
11.2k
        return val;                                                          \
5774
11.2k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5772
11.2k
    {                                                                        \
5773
11.2k
        return val;                                                          \
5774
11.2k
    }
scn::v4::detail::arg_mapper<wchar_t>::map(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5772
11.2k
    {                                                                        \
5773
11.2k
        return val;                                                          \
5774
11.2k
    }
5775
5776
    SCN_ARG_MAPPER(signed char)
5777
    SCN_ARG_MAPPER(short)
5778
    SCN_ARG_MAPPER(int)
5779
    SCN_ARG_MAPPER(long)
5780
    SCN_ARG_MAPPER(long long)
5781
    SCN_ARG_MAPPER(unsigned char)
5782
    SCN_ARG_MAPPER(unsigned short)
5783
    SCN_ARG_MAPPER(unsigned)
5784
    SCN_ARG_MAPPER(unsigned long)
5785
    SCN_ARG_MAPPER(unsigned long long)
5786
    SCN_ARG_MAPPER(wchar_t)
5787
    SCN_ARG_MAPPER(char32_t)
5788
    SCN_ARG_MAPPER(bool)
5789
    SCN_ARG_MAPPER(void*)
5790
    SCN_ARG_MAPPER(const void*)
5791
    SCN_ARG_MAPPER(float)
5792
    SCN_ARG_MAPPER(double)
5793
    SCN_ARG_MAPPER(long double)
5794
5795
    SCN_ARG_MAPPER(std::basic_string_view<char_type>)
5796
    SCN_ARG_MAPPER(std::string)
5797
    SCN_ARG_MAPPER(std::wstring)
5798
5799
#if SCN_HAS_INT128
5800
    SCN_ARG_MAPPER(int128)
5801
    SCN_ARG_MAPPER(uint128)
5802
#endif
5803
5804
#if SCN_HAS_STD_F16
5805
    SCN_ARG_MAPPER(std::float16_t)
5806
#endif
5807
#if SCN_HAS_STD_F32
5808
    SCN_ARG_MAPPER(std::float32_t)
5809
#endif
5810
#if SCN_HAS_STD_F64
5811
    SCN_ARG_MAPPER(std::float64_t)
5812
#endif
5813
#if SCN_HAS_STD_F128
5814
    SCN_ARG_MAPPER(std::float128_t)
5815
#endif
5816
#if SCN_HAS_STD_BF16
5817
    SCN_ARG_MAPPER(std::bfloat16_t)
5818
#endif
5819
5820
#undef SCN_ARG_MAPPER
5821
5822
    static decltype(auto) map(char& val)
5823
5.61k
    {
5824
        if constexpr (std::is_same_v<char_type, char> &&
5825
5.61k
                      !is_type_disabled<char_type>) {
5826
5.61k
            return val;
5827
        }
5828
        else if constexpr (is_type_disabled<char_type>) {
5829
            return unscannable_disabled{val};
5830
        }
5831
        else {
5832
            SCN_UNUSED(val);
5833
            return unscannable_char{};
5834
        }
5835
5.61k
    }
5836
5837
#if !SCN_DISABLE_REGEX
5838
    // regex_matches treated as a custom type, not packed,
5839
    // to save bits in the packed value,
5840
    // and since regex reading isn't fast anyway
5841
    template <typename T, typename Context>
5842
    static auto map(basic_regex_matches<char_type>& val)
5843
    {
5844
        if constexpr (is_type_disabled<char_type>) {
5845
            return unscannable_disabled{val};
5846
        }
5847
        else {
5848
            return custom_wrapper<T, Context>{val};
5849
        }
5850
    }
5851
    static unscannable_char map(basic_regex_matches<other_char_type>&)
5852
    {
5853
        return {};
5854
    }
5855
#endif
5856
5857
    static unscannable_char map(std::basic_string_view<other_char_type>&)
5858
    {
5859
        return {};
5860
    }
5861
5862
    template <typename T,
5863
              std::enable_if_t<std::is_default_constructible_v<
5864
                  scanner<T, char_type>>>* = nullptr>
5865
    static needs_context_tag map(T&)
5866
    {
5867
        return {};
5868
    }
5869
5870
    template <typename T,
5871
              typename Context,
5872
              std::enable_if_t<std::is_default_constructible_v<
5873
                  scanner<T, char_type>>>* = nullptr>
5874
    static custom_wrapper<T, Context> map(T& val, context_tag<Context>)
5875
    {
5876
        return {val};
5877
    }
5878
5879
    static unscannable map(...)
5880
    {
5881
        return {};
5882
    }
5883
};
5884
5885
template <typename T, typename CharT>
5886
using mapped_type_constant = arg_type_constant<
5887
    std::remove_reference_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>,
5888
    CharT>;
5889
5890
template <typename T, typename CharT>
5891
using is_scannable = std::integral_constant<
5892
    bool,
5893
    !std::is_base_of_v<
5894
        unscannable,
5895
        remove_cvref_t<decltype(arg_mapper<CharT>().map(SCN_DECLVAL(T&)))>>>;
5896
5897
inline constexpr std::size_t packed_arg_bits = 5;
5898
static_assert((1 << packed_arg_bits) > static_cast<int>(arg_type::last_type),
5899
              "If this fails, there are more `arg_type` values than values "
5900
              "that can fit in `packed_arg_bits`. Either something needs to be "
5901
              "removed from `arg_type` (spilling them to the stack), or "
5902
              "`packed_arg_bits` must be increased (causing the number of "
5903
              "arguments that can be packed to decrease)");
5904
inline constexpr std::size_t bits_in_sz = sizeof(std::size_t) * 8;
5905
inline constexpr std::size_t max_packed_args =
5906
    (bits_in_sz - 2) / packed_arg_bits - 1;
5907
inline constexpr std::size_t is_unpacked_bit = std::size_t{1}
5908
                                               << (bits_in_sz - 1);
5909
inline constexpr std::size_t has_custom_types_bit = std::size_t{1}
5910
                                                    << (bits_in_sz - 2);
5911
5912
template <typename>
5913
constexpr size_t encode_types_impl()
5914
0
{
5915
0
    return 0;
5916
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t>()
5917
template <typename CharT, typename T, typename... Others>
5918
constexpr size_t encode_types_impl()
5919
0
{
5920
0
    return static_cast<unsigned>(mapped_type_constant<T, CharT>::value) |
5921
0
           (encode_types_impl<CharT, Others...>() << packed_arg_bits);
5922
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, char>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, int>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, bool>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, void*>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types_impl<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
5923
5924
template <typename CharT, typename... Ts>
5925
constexpr size_t encode_types()
5926
0
{
5927
0
    if constexpr (sizeof...(Ts) < (1 << packed_arg_bits)) {
5928
0
        return sizeof...(Ts) |
5929
0
               (encode_types_impl<CharT, Ts...>() << packed_arg_bits);
5930
0
    }
5931
0
    else {
5932
0
        SCN_EXPECT(false);
5933
0
        SCN_UNREACHABLE;
5934
0
    }
5935
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, char>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, int>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, bool>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, void*>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::encode_types<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
5936
5937
template <typename T, typename Arg>
5938
constexpr auto make_value_impl(Arg&& arg)
5939
151k
{
5940
151k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
151k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
151k
    constexpr bool scannable_char =
5944
151k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
151k
    static_assert(scannable_char,
5946
151k
                  "Cannot scan an argument of an unsupported character "
5947
151k
                  "type (i.e. char from a wchar_t source)");
5948
5949
151k
    constexpr bool scannable_const =
5950
151k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
151k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
151k
    constexpr bool scannable_disabled =
5954
151k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
151k
    static_assert(scannable_disabled,
5956
151k
                  "Cannot scan an argument that has been disabled by "
5957
151k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
151k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
151k
    static_assert(
5961
151k
        scannable,
5962
151k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
151k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
151k
    return arg_value{arg};
5966
151k
}
auto scn::v4::detail::make_value_impl<char, char&>(char&)
Line
Count
Source
5939
5.61k
{
5940
5.61k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
5.61k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
5.61k
    constexpr bool scannable_char =
5944
5.61k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
5.61k
    static_assert(scannable_char,
5946
5.61k
                  "Cannot scan an argument of an unsupported character "
5947
5.61k
                  "type (i.e. char from a wchar_t source)");
5948
5949
5.61k
    constexpr bool scannable_const =
5950
5.61k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
5.61k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
5.61k
    constexpr bool scannable_disabled =
5954
5.61k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
5.61k
    static_assert(scannable_disabled,
5956
5.61k
                  "Cannot scan an argument that has been disabled by "
5957
5.61k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
5.61k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
5.61k
    static_assert(
5961
5.61k
        scannable,
5962
5.61k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
5.61k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
5.61k
    return arg_value{arg};
5966
5.61k
}
auto scn::v4::detail::make_value_impl<int, int&>(int&)
Line
Count
Source
5939
16.8k
{
5940
16.8k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
16.8k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
16.8k
    constexpr bool scannable_char =
5944
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
16.8k
    static_assert(scannable_char,
5946
16.8k
                  "Cannot scan an argument of an unsupported character "
5947
16.8k
                  "type (i.e. char from a wchar_t source)");
5948
5949
16.8k
    constexpr bool scannable_const =
5950
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
16.8k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
16.8k
    constexpr bool scannable_disabled =
5954
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
16.8k
    static_assert(scannable_disabled,
5956
16.8k
                  "Cannot scan an argument that has been disabled by "
5957
16.8k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
16.8k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
16.8k
    static_assert(
5961
16.8k
        scannable,
5962
16.8k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
16.8k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
16.8k
    return arg_value{arg};
5966
16.8k
}
auto scn::v4::detail::make_value_impl<unsigned int, unsigned int&>(unsigned int&)
Line
Count
Source
5939
16.8k
{
5940
16.8k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
16.8k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
16.8k
    constexpr bool scannable_char =
5944
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
16.8k
    static_assert(scannable_char,
5946
16.8k
                  "Cannot scan an argument of an unsupported character "
5947
16.8k
                  "type (i.e. char from a wchar_t source)");
5948
5949
16.8k
    constexpr bool scannable_const =
5950
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
16.8k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
16.8k
    constexpr bool scannable_disabled =
5954
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
16.8k
    static_assert(scannable_disabled,
5956
16.8k
                  "Cannot scan an argument that has been disabled by "
5957
16.8k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
16.8k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
16.8k
    static_assert(
5961
16.8k
        scannable,
5962
16.8k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
16.8k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
16.8k
    return arg_value{arg};
5966
16.8k
}
auto scn::v4::detail::make_value_impl<double, double&>(double&)
Line
Count
Source
5939
16.8k
{
5940
16.8k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
16.8k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
16.8k
    constexpr bool scannable_char =
5944
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
16.8k
    static_assert(scannable_char,
5946
16.8k
                  "Cannot scan an argument of an unsupported character "
5947
16.8k
                  "type (i.e. char from a wchar_t source)");
5948
5949
16.8k
    constexpr bool scannable_const =
5950
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
16.8k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
16.8k
    constexpr bool scannable_disabled =
5954
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
16.8k
    static_assert(scannable_disabled,
5956
16.8k
                  "Cannot scan an argument that has been disabled by "
5957
16.8k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
16.8k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
16.8k
    static_assert(
5961
16.8k
        scannable,
5962
16.8k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
16.8k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
16.8k
    return arg_value{arg};
5966
16.8k
}
auto scn::v4::detail::make_value_impl<bool, bool&>(bool&)
Line
Count
Source
5939
16.8k
{
5940
16.8k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
16.8k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
16.8k
    constexpr bool scannable_char =
5944
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
16.8k
    static_assert(scannable_char,
5946
16.8k
                  "Cannot scan an argument of an unsupported character "
5947
16.8k
                  "type (i.e. char from a wchar_t source)");
5948
5949
16.8k
    constexpr bool scannable_const =
5950
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
16.8k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
16.8k
    constexpr bool scannable_disabled =
5954
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
16.8k
    static_assert(scannable_disabled,
5956
16.8k
                  "Cannot scan an argument that has been disabled by "
5957
16.8k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
16.8k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
16.8k
    static_assert(
5961
16.8k
        scannable,
5962
16.8k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
16.8k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
16.8k
    return arg_value{arg};
5966
16.8k
}
auto scn::v4::detail::make_value_impl<void*, void*&>(void*&)
Line
Count
Source
5939
16.8k
{
5940
16.8k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
16.8k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
16.8k
    constexpr bool scannable_char =
5944
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
16.8k
    static_assert(scannable_char,
5946
16.8k
                  "Cannot scan an argument of an unsupported character "
5947
16.8k
                  "type (i.e. char from a wchar_t source)");
5948
5949
16.8k
    constexpr bool scannable_const =
5950
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
16.8k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
16.8k
    constexpr bool scannable_disabled =
5954
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
16.8k
    static_assert(scannable_disabled,
5956
16.8k
                  "Cannot scan an argument that has been disabled by "
5957
16.8k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
16.8k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
16.8k
    static_assert(
5961
16.8k
        scannable,
5962
16.8k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
16.8k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
16.8k
    return arg_value{arg};
5966
16.8k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5939
16.8k
{
5940
16.8k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
16.8k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
16.8k
    constexpr bool scannable_char =
5944
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
16.8k
    static_assert(scannable_char,
5946
16.8k
                  "Cannot scan an argument of an unsupported character "
5947
16.8k
                  "type (i.e. char from a wchar_t source)");
5948
5949
16.8k
    constexpr bool scannable_const =
5950
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
16.8k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
16.8k
    constexpr bool scannable_disabled =
5954
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
16.8k
    static_assert(scannable_disabled,
5956
16.8k
                  "Cannot scan an argument that has been disabled by "
5957
16.8k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
16.8k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
16.8k
    static_assert(
5961
16.8k
        scannable,
5962
16.8k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
16.8k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
16.8k
    return arg_value{arg};
5966
16.8k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5939
16.8k
{
5940
16.8k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
16.8k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
16.8k
    constexpr bool scannable_char =
5944
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
16.8k
    static_assert(scannable_char,
5946
16.8k
                  "Cannot scan an argument of an unsupported character "
5947
16.8k
                  "type (i.e. char from a wchar_t source)");
5948
5949
16.8k
    constexpr bool scannable_const =
5950
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
16.8k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
16.8k
    constexpr bool scannable_disabled =
5954
16.8k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
16.8k
    static_assert(scannable_disabled,
5956
16.8k
                  "Cannot scan an argument that has been disabled by "
5957
16.8k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
16.8k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
16.8k
    static_assert(
5961
16.8k
        scannable,
5962
16.8k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
16.8k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
16.8k
    return arg_value{arg};
5966
16.8k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5939
5.61k
{
5940
5.61k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
5.61k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
5.61k
    constexpr bool scannable_char =
5944
5.61k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
5.61k
    static_assert(scannable_char,
5946
5.61k
                  "Cannot scan an argument of an unsupported character "
5947
5.61k
                  "type (i.e. char from a wchar_t source)");
5948
5949
5.61k
    constexpr bool scannable_const =
5950
5.61k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
5.61k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
5.61k
    constexpr bool scannable_disabled =
5954
5.61k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
5.61k
    static_assert(scannable_disabled,
5956
5.61k
                  "Cannot scan an argument that has been disabled by "
5957
5.61k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
5.61k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
5.61k
    static_assert(
5961
5.61k
        scannable,
5962
5.61k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
5.61k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
5.61k
    return arg_value{arg};
5966
5.61k
}
auto scn::v4::detail::make_value_impl<wchar_t, wchar_t&>(wchar_t&)
Line
Count
Source
5939
11.2k
{
5940
11.2k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
11.2k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
11.2k
    constexpr bool scannable_char =
5944
11.2k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
11.2k
    static_assert(scannable_char,
5946
11.2k
                  "Cannot scan an argument of an unsupported character "
5947
11.2k
                  "type (i.e. char from a wchar_t source)");
5948
5949
11.2k
    constexpr bool scannable_const =
5950
11.2k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
11.2k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
11.2k
    constexpr bool scannable_disabled =
5954
11.2k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
11.2k
    static_assert(scannable_disabled,
5956
11.2k
                  "Cannot scan an argument that has been disabled by "
5957
11.2k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
11.2k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
11.2k
    static_assert(
5961
11.2k
        scannable,
5962
11.2k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
11.2k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
11.2k
    return arg_value{arg};
5966
11.2k
}
auto scn::v4::detail::make_value_impl<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5939
11.2k
{
5940
11.2k
    using arg_nocvref_t = remove_cvref_t<Arg>;
5941
11.2k
    static_assert(!std::is_same_v<arg_nocvref_t, needs_context_tag>);
5942
5943
11.2k
    constexpr bool scannable_char =
5944
11.2k
        !std::is_same_v<arg_nocvref_t, unscannable_char>;
5945
11.2k
    static_assert(scannable_char,
5946
11.2k
                  "Cannot scan an argument of an unsupported character "
5947
11.2k
                  "type (i.e. char from a wchar_t source)");
5948
5949
11.2k
    constexpr bool scannable_const =
5950
11.2k
        !std::is_same_v<arg_nocvref_t, unscannable_const>;
5951
11.2k
    static_assert(scannable_const, "Cannot scan a const argument");
5952
5953
11.2k
    constexpr bool scannable_disabled =
5954
11.2k
        !std::is_same_v<arg_nocvref_t, unscannable_disabled>;
5955
11.2k
    static_assert(scannable_disabled,
5956
11.2k
                  "Cannot scan an argument that has been disabled by "
5957
11.2k
                  "flag (SCN_DISABLE_TYPE_*)");
5958
5959
11.2k
    constexpr bool scannable = !std::is_same_v<arg_nocvref_t, unscannable>;
5960
11.2k
    static_assert(
5961
11.2k
        scannable,
5962
11.2k
        "Cannot scan an argument. To make a type T scannable, provide "
5963
11.2k
        "a scn::scanner<T, CharT> specialization.");
5964
5965
11.2k
    return arg_value{arg};
5966
11.2k
}
5967
5968
template <typename Context, typename T>
5969
constexpr auto make_value(T& value)
5970
151k
{
5971
151k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
151k
                                  needs_context_tag>) {
5975
151k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
151k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, char>(char&)
Line
Count
Source
5970
5.61k
{
5971
5.61k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
5.61k
                                  needs_context_tag>) {
5975
5.61k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
5.61k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, int>(int&)
Line
Count
Source
5970
5.61k
{
5971
5.61k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
5.61k
                                  needs_context_tag>) {
5975
5.61k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
5.61k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, unsigned int>(unsigned int&)
Line
Count
Source
5970
5.61k
{
5971
5.61k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
5.61k
                                  needs_context_tag>) {
5975
5.61k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
5.61k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>(double&)
Line
Count
Source
5970
5.61k
{
5971
5.61k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
5.61k
                                  needs_context_tag>) {
5975
5.61k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
5.61k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, bool>(bool&)
Line
Count
Source
5970
5.61k
{
5971
5.61k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
5.61k
                                  needs_context_tag>) {
5975
5.61k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
5.61k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, void*>(void*&)
Line
Count
Source
5970
5.61k
{
5971
5.61k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
5.61k
                                  needs_context_tag>) {
5975
5.61k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
5.61k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5970
5.61k
{
5971
5.61k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
5.61k
                                  needs_context_tag>) {
5975
5.61k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
5.61k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5970
5.61k
{
5971
5.61k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
5.61k
                                  needs_context_tag>) {
5975
5.61k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
5.61k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
5970
5.61k
{
5971
5.61k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
5.61k
                                  needs_context_tag>) {
5975
5.61k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
5.61k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, wchar_t>(wchar_t&)
Line
Count
Source
5970
11.2k
{
5971
11.2k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
11.2k
                                  needs_context_tag>) {
5975
11.2k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
11.2k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, int>(int&)
Line
Count
Source
5970
11.2k
{
5971
11.2k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
11.2k
                                  needs_context_tag>) {
5975
11.2k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
11.2k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, unsigned int>(unsigned int&)
Line
Count
Source
5970
11.2k
{
5971
11.2k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
11.2k
                                  needs_context_tag>) {
5975
11.2k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
11.2k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, double>(double&)
Line
Count
Source
5970
11.2k
{
5971
11.2k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
11.2k
                                  needs_context_tag>) {
5975
11.2k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
11.2k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, bool>(bool&)
Line
Count
Source
5970
11.2k
{
5971
11.2k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
11.2k
                                  needs_context_tag>) {
5975
11.2k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
11.2k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, void*>(void*&)
Line
Count
Source
5970
11.2k
{
5971
11.2k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
11.2k
                                  needs_context_tag>) {
5975
11.2k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
11.2k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
5970
11.2k
{
5971
11.2k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
11.2k
                                  needs_context_tag>) {
5975
11.2k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
11.2k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
5970
11.2k
{
5971
11.2k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
11.2k
                                  needs_context_tag>) {
5975
11.2k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
11.2k
}
auto scn::v4::detail::make_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
5970
11.2k
{
5971
11.2k
    auto&& arg = arg_mapper<typename Context::char_type>().map(value);
5972
5973
    if constexpr (!std::is_same_v<remove_cvref_t<decltype(arg)>,
5974
11.2k
                                  needs_context_tag>) {
5975
11.2k
        return make_value_impl<T>(SCN_FWD(arg));
5976
    }
5977
    else {
5978
        return make_value_impl<T>(arg_mapper<typename Context::char_type>().map(
5979
            value, context_tag<Context>{}));
5980
    }
5981
11.2k
}
5982
5983
template <typename... Args>
5984
constexpr bool check_scan_arg_types()
5985
151k
{
5986
151k
    constexpr bool default_constructible_constraint =
5987
151k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
151k
    static_assert(default_constructible_constraint,
5989
151k
                  "Scan argument types must be default constructible");
5990
5991
151k
    constexpr bool destructible_constraint =
5992
151k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
151k
    static_assert(destructible_constraint,
5994
151k
                  "Scan argument types must be Destructible");
5995
5996
151k
    constexpr bool non_reference_constraint =
5997
151k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
151k
    static_assert(non_reference_constraint,
5999
151k
                  "Scan argument types must not be references");
6000
6001
151k
    constexpr bool movable_constraint =
6002
151k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
151k
    static_assert(movable_constraint,
6004
151k
                  "Scan argument types must be move constructible");
6005
6006
151k
    return default_constructible_constraint && destructible_constraint &&
6007
151k
           non_reference_constraint && movable_constraint;
6008
151k
}
bool scn::v4::detail::check_scan_arg_types<char>()
Line
Count
Source
5985
5.61k
{
5986
5.61k
    constexpr bool default_constructible_constraint =
5987
5.61k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
5.61k
    static_assert(default_constructible_constraint,
5989
5.61k
                  "Scan argument types must be default constructible");
5990
5991
5.61k
    constexpr bool destructible_constraint =
5992
5.61k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
5.61k
    static_assert(destructible_constraint,
5994
5.61k
                  "Scan argument types must be Destructible");
5995
5996
5.61k
    constexpr bool non_reference_constraint =
5997
5.61k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
5.61k
    static_assert(non_reference_constraint,
5999
5.61k
                  "Scan argument types must not be references");
6000
6001
5.61k
    constexpr bool movable_constraint =
6002
5.61k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
5.61k
    static_assert(movable_constraint,
6004
5.61k
                  "Scan argument types must be move constructible");
6005
6006
5.61k
    return default_constructible_constraint && destructible_constraint &&
6007
5.61k
           non_reference_constraint && movable_constraint;
6008
5.61k
}
bool scn::v4::detail::check_scan_arg_types<int>()
Line
Count
Source
5985
16.8k
{
5986
16.8k
    constexpr bool default_constructible_constraint =
5987
16.8k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
16.8k
    static_assert(default_constructible_constraint,
5989
16.8k
                  "Scan argument types must be default constructible");
5990
5991
16.8k
    constexpr bool destructible_constraint =
5992
16.8k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
16.8k
    static_assert(destructible_constraint,
5994
16.8k
                  "Scan argument types must be Destructible");
5995
5996
16.8k
    constexpr bool non_reference_constraint =
5997
16.8k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
16.8k
    static_assert(non_reference_constraint,
5999
16.8k
                  "Scan argument types must not be references");
6000
6001
16.8k
    constexpr bool movable_constraint =
6002
16.8k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
16.8k
    static_assert(movable_constraint,
6004
16.8k
                  "Scan argument types must be move constructible");
6005
6006
16.8k
    return default_constructible_constraint && destructible_constraint &&
6007
16.8k
           non_reference_constraint && movable_constraint;
6008
16.8k
}
bool scn::v4::detail::check_scan_arg_types<unsigned int>()
Line
Count
Source
5985
16.8k
{
5986
16.8k
    constexpr bool default_constructible_constraint =
5987
16.8k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
16.8k
    static_assert(default_constructible_constraint,
5989
16.8k
                  "Scan argument types must be default constructible");
5990
5991
16.8k
    constexpr bool destructible_constraint =
5992
16.8k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
16.8k
    static_assert(destructible_constraint,
5994
16.8k
                  "Scan argument types must be Destructible");
5995
5996
16.8k
    constexpr bool non_reference_constraint =
5997
16.8k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
16.8k
    static_assert(non_reference_constraint,
5999
16.8k
                  "Scan argument types must not be references");
6000
6001
16.8k
    constexpr bool movable_constraint =
6002
16.8k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
16.8k
    static_assert(movable_constraint,
6004
16.8k
                  "Scan argument types must be move constructible");
6005
6006
16.8k
    return default_constructible_constraint && destructible_constraint &&
6007
16.8k
           non_reference_constraint && movable_constraint;
6008
16.8k
}
bool scn::v4::detail::check_scan_arg_types<double>()
Line
Count
Source
5985
16.8k
{
5986
16.8k
    constexpr bool default_constructible_constraint =
5987
16.8k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
16.8k
    static_assert(default_constructible_constraint,
5989
16.8k
                  "Scan argument types must be default constructible");
5990
5991
16.8k
    constexpr bool destructible_constraint =
5992
16.8k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
16.8k
    static_assert(destructible_constraint,
5994
16.8k
                  "Scan argument types must be Destructible");
5995
5996
16.8k
    constexpr bool non_reference_constraint =
5997
16.8k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
16.8k
    static_assert(non_reference_constraint,
5999
16.8k
                  "Scan argument types must not be references");
6000
6001
16.8k
    constexpr bool movable_constraint =
6002
16.8k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
16.8k
    static_assert(movable_constraint,
6004
16.8k
                  "Scan argument types must be move constructible");
6005
6006
16.8k
    return default_constructible_constraint && destructible_constraint &&
6007
16.8k
           non_reference_constraint && movable_constraint;
6008
16.8k
}
bool scn::v4::detail::check_scan_arg_types<bool>()
Line
Count
Source
5985
16.8k
{
5986
16.8k
    constexpr bool default_constructible_constraint =
5987
16.8k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
16.8k
    static_assert(default_constructible_constraint,
5989
16.8k
                  "Scan argument types must be default constructible");
5990
5991
16.8k
    constexpr bool destructible_constraint =
5992
16.8k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
16.8k
    static_assert(destructible_constraint,
5994
16.8k
                  "Scan argument types must be Destructible");
5995
5996
16.8k
    constexpr bool non_reference_constraint =
5997
16.8k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
16.8k
    static_assert(non_reference_constraint,
5999
16.8k
                  "Scan argument types must not be references");
6000
6001
16.8k
    constexpr bool movable_constraint =
6002
16.8k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
16.8k
    static_assert(movable_constraint,
6004
16.8k
                  "Scan argument types must be move constructible");
6005
6006
16.8k
    return default_constructible_constraint && destructible_constraint &&
6007
16.8k
           non_reference_constraint && movable_constraint;
6008
16.8k
}
bool scn::v4::detail::check_scan_arg_types<void*>()
Line
Count
Source
5985
16.8k
{
5986
16.8k
    constexpr bool default_constructible_constraint =
5987
16.8k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
16.8k
    static_assert(default_constructible_constraint,
5989
16.8k
                  "Scan argument types must be default constructible");
5990
5991
16.8k
    constexpr bool destructible_constraint =
5992
16.8k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
16.8k
    static_assert(destructible_constraint,
5994
16.8k
                  "Scan argument types must be Destructible");
5995
5996
16.8k
    constexpr bool non_reference_constraint =
5997
16.8k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
16.8k
    static_assert(non_reference_constraint,
5999
16.8k
                  "Scan argument types must not be references");
6000
6001
16.8k
    constexpr bool movable_constraint =
6002
16.8k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
16.8k
    static_assert(movable_constraint,
6004
16.8k
                  "Scan argument types must be move constructible");
6005
6006
16.8k
    return default_constructible_constraint && destructible_constraint &&
6007
16.8k
           non_reference_constraint && movable_constraint;
6008
16.8k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
5985
16.8k
{
5986
16.8k
    constexpr bool default_constructible_constraint =
5987
16.8k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
16.8k
    static_assert(default_constructible_constraint,
5989
16.8k
                  "Scan argument types must be default constructible");
5990
5991
16.8k
    constexpr bool destructible_constraint =
5992
16.8k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
16.8k
    static_assert(destructible_constraint,
5994
16.8k
                  "Scan argument types must be Destructible");
5995
5996
16.8k
    constexpr bool non_reference_constraint =
5997
16.8k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
16.8k
    static_assert(non_reference_constraint,
5999
16.8k
                  "Scan argument types must not be references");
6000
6001
16.8k
    constexpr bool movable_constraint =
6002
16.8k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
16.8k
    static_assert(movable_constraint,
6004
16.8k
                  "Scan argument types must be move constructible");
6005
6006
16.8k
    return default_constructible_constraint && destructible_constraint &&
6007
16.8k
           non_reference_constraint && movable_constraint;
6008
16.8k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
5985
16.8k
{
5986
16.8k
    constexpr bool default_constructible_constraint =
5987
16.8k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
16.8k
    static_assert(default_constructible_constraint,
5989
16.8k
                  "Scan argument types must be default constructible");
5990
5991
16.8k
    constexpr bool destructible_constraint =
5992
16.8k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
16.8k
    static_assert(destructible_constraint,
5994
16.8k
                  "Scan argument types must be Destructible");
5995
5996
16.8k
    constexpr bool non_reference_constraint =
5997
16.8k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
16.8k
    static_assert(non_reference_constraint,
5999
16.8k
                  "Scan argument types must not be references");
6000
6001
16.8k
    constexpr bool movable_constraint =
6002
16.8k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
16.8k
    static_assert(movable_constraint,
6004
16.8k
                  "Scan argument types must be move constructible");
6005
6006
16.8k
    return default_constructible_constraint && destructible_constraint &&
6007
16.8k
           non_reference_constraint && movable_constraint;
6008
16.8k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
5985
5.61k
{
5986
5.61k
    constexpr bool default_constructible_constraint =
5987
5.61k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
5.61k
    static_assert(default_constructible_constraint,
5989
5.61k
                  "Scan argument types must be default constructible");
5990
5991
5.61k
    constexpr bool destructible_constraint =
5992
5.61k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
5.61k
    static_assert(destructible_constraint,
5994
5.61k
                  "Scan argument types must be Destructible");
5995
5996
5.61k
    constexpr bool non_reference_constraint =
5997
5.61k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
5.61k
    static_assert(non_reference_constraint,
5999
5.61k
                  "Scan argument types must not be references");
6000
6001
5.61k
    constexpr bool movable_constraint =
6002
5.61k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
5.61k
    static_assert(movable_constraint,
6004
5.61k
                  "Scan argument types must be move constructible");
6005
6006
5.61k
    return default_constructible_constraint && destructible_constraint &&
6007
5.61k
           non_reference_constraint && movable_constraint;
6008
5.61k
}
bool scn::v4::detail::check_scan_arg_types<wchar_t>()
Line
Count
Source
5985
11.2k
{
5986
11.2k
    constexpr bool default_constructible_constraint =
5987
11.2k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
11.2k
    static_assert(default_constructible_constraint,
5989
11.2k
                  "Scan argument types must be default constructible");
5990
5991
11.2k
    constexpr bool destructible_constraint =
5992
11.2k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
11.2k
    static_assert(destructible_constraint,
5994
11.2k
                  "Scan argument types must be Destructible");
5995
5996
11.2k
    constexpr bool non_reference_constraint =
5997
11.2k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
11.2k
    static_assert(non_reference_constraint,
5999
11.2k
                  "Scan argument types must not be references");
6000
6001
11.2k
    constexpr bool movable_constraint =
6002
11.2k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
11.2k
    static_assert(movable_constraint,
6004
11.2k
                  "Scan argument types must be move constructible");
6005
6006
11.2k
    return default_constructible_constraint && destructible_constraint &&
6007
11.2k
           non_reference_constraint && movable_constraint;
6008
11.2k
}
bool scn::v4::detail::check_scan_arg_types<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
5985
11.2k
{
5986
11.2k
    constexpr bool default_constructible_constraint =
5987
11.2k
        std::conjunction_v<std::is_default_constructible<Args>...>;
5988
11.2k
    static_assert(default_constructible_constraint,
5989
11.2k
                  "Scan argument types must be default constructible");
5990
5991
11.2k
    constexpr bool destructible_constraint =
5992
11.2k
        std::conjunction_v<std::is_destructible<Args>...>;
5993
11.2k
    static_assert(destructible_constraint,
5994
11.2k
                  "Scan argument types must be Destructible");
5995
5996
11.2k
    constexpr bool non_reference_constraint =
5997
11.2k
        !std::conjunction_v<std::false_type, std::is_reference<Args>...>;
5998
11.2k
    static_assert(non_reference_constraint,
5999
11.2k
                  "Scan argument types must not be references");
6000
6001
11.2k
    constexpr bool movable_constraint =
6002
11.2k
        std::conjunction_v<std::is_move_constructible<Args>...>;
6003
11.2k
    static_assert(movable_constraint,
6004
11.2k
                  "Scan argument types must be move constructible");
6005
6006
11.2k
    return default_constructible_constraint && destructible_constraint &&
6007
11.2k
           non_reference_constraint && movable_constraint;
6008
11.2k
}
6009
6010
enum class scan_arg_store_kind {
6011
    // only built-in types (no custom types), packed
6012
    builtin,
6013
6014
    packed,
6015
    unpacked
6016
};
6017
6018
template <typename Context, typename T>
6019
constexpr basic_scan_arg<Context> make_arg(T& value) noexcept
6020
{
6021
    check_scan_arg_types<T>();
6022
6023
    basic_scan_arg<Context> arg;
6024
    arg.m_type = mapped_type_constant<T, typename Context::char_type>::value;
6025
    arg.m_value = make_value<Context>(value);
6026
    return arg;
6027
}
6028
6029
template <scan_arg_store_kind Kind,
6030
          typename Context,
6031
          arg_type,
6032
          typename T,
6033
          typename = std::enable_if_t<Kind == scan_arg_store_kind::builtin>>
6034
constexpr void* make_arg(T& value) noexcept
6035
151k
{
6036
151k
    return make_value<Context>(value).ref_value;
6037
151k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)14, char, void>(char&)
Line
Count
Source
6035
5.61k
{
6036
5.61k
    return make_value<Context>(value).ref_value;
6037
5.61k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)3, int, void>(int&)
Line
Count
Source
6035
5.61k
{
6036
5.61k
    return make_value<Context>(value).ref_value;
6037
5.61k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)9, unsigned int, void>(unsigned int&)
Line
Count
Source
6035
5.61k
{
6036
5.61k
    return make_value<Context>(value).ref_value;
6037
5.61k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)19, double, void>(double&)
Line
Count
Source
6035
5.61k
{
6036
5.61k
    return make_value<Context>(value).ref_value;
6037
5.61k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)13, bool, void>(bool&)
Line
Count
Source
6035
5.61k
{
6036
5.61k
    return make_value<Context>(value).ref_value;
6037
5.61k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)17, void*, void>(void*&)
Line
Count
Source
6035
5.61k
{
6036
5.61k
    return make_value<Context>(value).ref_value;
6037
5.61k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)27, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
6035
5.61k
{
6036
5.61k
    return make_value<Context>(value).ref_value;
6037
5.61k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)28, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
6035
5.61k
{
6036
5.61k
    return make_value<Context>(value).ref_value;
6037
5.61k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, (scn::v4::detail::arg_type)26, std::__1::basic_string_view<char, std::__1::char_traits<char> >, void>(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
6035
5.61k
{
6036
5.61k
    return make_value<Context>(value).ref_value;
6037
5.61k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)15, wchar_t, void>(wchar_t&)
Line
Count
Source
6035
11.2k
{
6036
11.2k
    return make_value<Context>(value).ref_value;
6037
11.2k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)3, int, void>(int&)
Line
Count
Source
6035
11.2k
{
6036
11.2k
    return make_value<Context>(value).ref_value;
6037
11.2k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)9, unsigned int, void>(unsigned int&)
Line
Count
Source
6035
11.2k
{
6036
11.2k
    return make_value<Context>(value).ref_value;
6037
11.2k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)19, double, void>(double&)
Line
Count
Source
6035
11.2k
{
6036
11.2k
    return make_value<Context>(value).ref_value;
6037
11.2k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)13, bool, void>(bool&)
Line
Count
Source
6035
11.2k
{
6036
11.2k
    return make_value<Context>(value).ref_value;
6037
11.2k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)17, void*, void>(void*&)
Line
Count
Source
6035
11.2k
{
6036
11.2k
    return make_value<Context>(value).ref_value;
6037
11.2k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)27, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
6035
11.2k
{
6036
11.2k
    return make_value<Context>(value).ref_value;
6037
11.2k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)28, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >, void>(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
6035
11.2k
{
6036
11.2k
    return make_value<Context>(value).ref_value;
6037
11.2k
}
void* scn::v4::detail::make_arg<(scn::v4::detail::scan_arg_store_kind)0, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, (scn::v4::detail::arg_type)26, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, void>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
6035
11.2k
{
6036
11.2k
    return make_value<Context>(value).ref_value;
6037
11.2k
}
6038
template <scan_arg_store_kind Kind,
6039
          typename Context,
6040
          arg_type,
6041
          typename T,
6042
          typename = std::enable_if_t<Kind == scan_arg_store_kind::packed>>
6043
constexpr arg_value make_arg(T& value) noexcept
6044
{
6045
    return make_value<Context>(value);
6046
}
6047
template <scan_arg_store_kind Kind,
6048
          typename Context,
6049
          arg_type,
6050
          typename T,
6051
          typename = std::enable_if_t<Kind == scan_arg_store_kind::unpacked>>
6052
constexpr basic_scan_arg<Context> make_arg(T&& value) noexcept
6053
{
6054
    return make_arg<Context>(SCN_FWD(value));
6055
}
6056
6057
template <typename Context>
6058
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg) noexcept;
6059
template <typename Context>
6060
constexpr arg_value get_arg_value(const basic_scan_arg<Context>& arg) noexcept;
6061
6062
template <typename Context>
6063
constexpr arg_type& get_arg_type(basic_scan_arg<Context>& arg) noexcept;
6064
template <typename Context>
6065
constexpr arg_type get_arg_type(const basic_scan_arg<Context>& arg) noexcept;
6066
6067
template <typename Visitor, typename Context>
6068
constexpr decltype(auto) visit_impl(Visitor&& vis,
6069
                                    basic_scan_arg<Context>& arg);
6070
}  // namespace detail
6071
6072
/**
6073
 * Type-erased scanning argument.
6074
 *
6075
 * Contains a pointer to the value contained in a `scan_arg_store`.
6076
 */
6077
template <typename Context>
6078
class basic_scan_arg {
6079
public:
6080
    /**
6081
     * Enables scanning of a user-defined type.
6082
     *
6083
     * Contains a pointer to the value contained in a `scan_arg_store`, and
6084
     * a callback for parsing the format string, and scanning the value.
6085
     *
6086
     * \see scn::visit_scan_arg
6087
     */
6088
    class handle {
6089
    public:
6090
        /**
6091
         * Parse the format string in `parse_ctx`, and scan the value from
6092
         * `ctx`.
6093
         *
6094
         * \return Any error returned by the scanner
6095
         */
6096
        scan_expected<void> scan(
6097
            typename Context::parse_context_type& parse_ctx,
6098
            Context& ctx) const
6099
0
        {
6100
0
            return m_custom.scan(m_custom.value, &parse_ctx, &ctx);
6101
0
        }
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::handle::scan(scn::v4::basic_scan_parse_context<char>&, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>&) const
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::handle::scan(scn::v4::basic_scan_parse_context<wchar_t>&, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>&) const
6102
6103
    private:
6104
        explicit handle(detail::custom_value_type custom) noexcept
6105
0
            : m_custom(custom)
6106
0
        {
6107
0
        }
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::handle::handle(scn::v4::detail::custom_value_type)
Unexecuted instantiation: scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::handle::handle(scn::v4::detail::custom_value_type)
6108
6109
        template <typename Visitor, typename C>
6110
        friend constexpr decltype(auto) detail::visit_impl(
6111
            Visitor&& vis,
6112
            basic_scan_arg<C>& arg);
6113
6114
        detail::custom_value_type m_custom;
6115
    };
6116
6117
    /// Construct a `basic_scan_arg` which doesn't contain an argument.
6118
99.8k
    constexpr basic_scan_arg() = default;
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_arg()
Line
Count
Source
6118
30.9k
    constexpr basic_scan_arg() = default;
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_arg()
Line
Count
Source
6118
68.9k
    constexpr basic_scan_arg() = default;
6119
6120
    /**
6121
     * @return `true` if `*this` contains an argument
6122
     */
6123
    constexpr explicit operator bool() const noexcept
6124
193k
    {
6125
193k
        return m_type != detail::arg_type::none_type;
6126
193k
    }
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::operator bool() const
Line
Count
Source
6124
58.4k
    {
6125
58.4k
        return m_type != detail::arg_type::none_type;
6126
58.4k
    }
scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::operator bool() const
Line
Count
Source
6124
134k
    {
6125
134k
        return m_type != detail::arg_type::none_type;
6126
134k
    }
6127
6128
    /**
6129
     * Visit a `basic_scan_arg` with `Visitor`.
6130
     * Calls `vis` with the value stored in `*this`.
6131
     * If no value is contained in `*this`, calls `vis` with a `monostate`.
6132
     *
6133
     * \return `vis(x)`, where `x` is either a reference to the value contained
6134
     * in `*this`, or a `basic_scan_arg::handle`.
6135
     */
6136
    template <typename Visitor>
6137
    constexpr decltype(auto) visit(Visitor&& vis);
6138
6139
    template <typename R, typename Visitor>
6140
    constexpr R visit(Visitor&& vis);
6141
6142
private:
6143
    template <typename ContextType, typename T>
6144
    friend constexpr basic_scan_arg<ContextType> detail::make_arg(
6145
        T& value) noexcept;
6146
6147
    template <typename C>
6148
    friend constexpr detail::arg_type& detail::get_arg_type(
6149
        basic_scan_arg<C>& arg) noexcept;
6150
    template <typename C>
6151
    friend constexpr detail::arg_type detail::get_arg_type(
6152
        const basic_scan_arg<C>& arg) noexcept;
6153
6154
    template <typename C>
6155
    friend constexpr detail::arg_value& detail::get_arg_value(
6156
        basic_scan_arg<C>& arg) noexcept;
6157
    template <typename C>
6158
    friend constexpr detail::arg_value detail::get_arg_value(
6159
        const basic_scan_arg<C>& arg) noexcept;
6160
6161
    friend class basic_scan_args<Context>;
6162
6163
    detail::arg_value m_value{};
6164
    detail::arg_type m_type{detail::arg_type::none_type};
6165
};
6166
6167
namespace detail {
6168
template <typename Context>
6169
constexpr arg_type& get_arg_type(basic_scan_arg<Context>& arg) noexcept
6170
171k
{
6171
171k
    return arg.m_type;
6172
171k
}
scn::v4::detail::arg_type& scn::v4::detail::get_arg_type<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
6170
77.7k
{
6171
77.7k
    return arg.m_type;
6172
77.7k
}
scn::v4::detail::arg_type& scn::v4::detail::get_arg_type<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
6170
93.7k
{
6171
93.7k
    return arg.m_type;
6172
93.7k
}
6173
6174
template <typename Context>
6175
constexpr arg_type get_arg_type(const basic_scan_arg<Context>& arg) noexcept
6176
{
6177
    return arg.m_type;
6178
}
6179
6180
template <typename Context>
6181
constexpr arg_value& get_arg_value(basic_scan_arg<Context>& arg) noexcept
6182
93.5k
{
6183
93.5k
    return arg.m_value;
6184
93.5k
}
scn::v4::detail::arg_value& scn::v4::detail::get_arg_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
6182
27.5k
{
6183
27.5k
    return arg.m_value;
6184
27.5k
}
scn::v4::detail::arg_value& scn::v4::detail::get_arg_value<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
6182
66.0k
{
6183
66.0k
    return arg.m_value;
6184
66.0k
}
6185
6186
template <typename Context>
6187
constexpr arg_value get_arg_value(const basic_scan_arg<Context>& arg) noexcept
6188
{
6189
    return arg.m_value;
6190
}
6191
6192
template <typename CharT>
6193
constexpr bool all_types_builtin() noexcept
6194
0
{
6195
0
    return true;
6196
0
}
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t>()
6197
template <typename CharT, typename T, typename... Args>
6198
constexpr bool all_types_builtin() noexcept
6199
0
{
6200
0
    return mapped_type_constant<T, CharT>::value != arg_type::custom_type &&
6201
0
           all_types_builtin<CharT, Args...>();
6202
0
}
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, char>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, int>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, unsigned int>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, double>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, bool>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, void*>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, wchar_t>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, int>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, unsigned int>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, double>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, bool>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, void*>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >>()
Unexecuted instantiation: bool scn::v4::detail::all_types_builtin<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >>()
6203
6204
template <typename CharT, typename... Args>
6205
constexpr scan_arg_store_kind determine_arg_store_kind() noexcept
6206
0
{
6207
0
    if constexpr (sizeof...(Args) > max_packed_args) {
6208
0
        return scan_arg_store_kind::unpacked;
6209
0
    }
6210
0
#if !(SCN_CLANG && SCN_APPLE)
6211
0
    // This doesn't work on Apple Clang. I don't know why
6212
0
    if constexpr (all_types_builtin<CharT, Args...>()) {
6213
0
        return scan_arg_store_kind::builtin;
6214
0
    }
6215
0
#endif
6216
0
    return scan_arg_store_kind::packed;
6217
0
}
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, char>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, int>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, unsigned int>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, double>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, bool>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, void*>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, wchar_t>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, int>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, unsigned int>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, double>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, bool>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, void*>()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: scn::v4::detail::scan_arg_store_kind scn::v4::detail::determine_arg_store_kind<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
6218
6219
template <scan_arg_store_kind Kind, typename CharT, typename... Args>
6220
constexpr size_t compute_arg_store_desc() noexcept
6221
0
{
6222
0
    if constexpr (Kind == scan_arg_store_kind::builtin) {
6223
0
        return encode_types<CharT, Args...>();
6224
0
    }
6225
0
    else if constexpr (Kind == scan_arg_store_kind::packed) {
6226
0
        return encode_types<CharT, Args...>() | has_custom_types_bit;
6227
0
    }
6228
0
    else {
6229
0
        return sizeof...(Args) | is_unpacked_bit;
6230
0
    }
6231
0
}
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, char>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, int>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, unsigned int>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, bool>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, void*>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, char, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, wchar_t>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, int>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, unsigned int>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, double>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, bool>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, void*>()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Unexecuted instantiation: unsigned long scn::v4::detail::compute_arg_store_desc<(scn::v4::detail::scan_arg_store_kind)0, wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
6232
6233
template <typename Context, typename... Args>
6234
class scan_arg_store {
6235
public:
6236
    static constexpr scan_arg_store_kind kind =
6237
        determine_arg_store_kind<typename Context::char_type, Args...>();
6238
    static constexpr size_t desc =
6239
        compute_arg_store_desc<kind, typename Context::char_type, Args...>();
6240
6241
    using argptr_type = std::conditional_t<
6242
        kind == scan_arg_store_kind::builtin,
6243
        void*,
6244
        std::conditional_t<kind == scan_arg_store_kind::packed,
6245
                           arg_value,
6246
                           basic_scan_arg<Context>>>;
6247
    using argptrs_type = std::array<argptr_type, sizeof...(Args)>;
6248
6249
    constexpr explicit scan_arg_store(std::tuple<Args...>& a) noexcept
6250
151k
        : args(std::apply(make_argptrs<Args...>, a))
6251
151k
    {
6252
151k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, char>::scan_arg_store(std::__1::tuple<char>&)
Line
Count
Source
6250
5.61k
        : args(std::apply(make_argptrs<Args...>, a))
6251
5.61k
    {
6252
5.61k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, int>::scan_arg_store(std::__1::tuple<int>&)
Line
Count
Source
6250
5.61k
        : args(std::apply(make_argptrs<Args...>, a))
6251
5.61k
    {
6252
5.61k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, unsigned int>::scan_arg_store(std::__1::tuple<unsigned int>&)
Line
Count
Source
6250
5.61k
        : args(std::apply(make_argptrs<Args...>, a))
6251
5.61k
    {
6252
5.61k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>::scan_arg_store(std::__1::tuple<double>&)
Line
Count
Source
6250
5.61k
        : args(std::apply(make_argptrs<Args...>, a))
6251
5.61k
    {
6252
5.61k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, bool>::scan_arg_store(std::__1::tuple<bool>&)
Line
Count
Source
6250
5.61k
        : args(std::apply(make_argptrs<Args...>, a))
6251
5.61k
    {
6252
5.61k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, void*>::scan_arg_store(std::__1::tuple<void*>&)
Line
Count
Source
6250
5.61k
        : args(std::apply(make_argptrs<Args...>, a))
6251
5.61k
    {
6252
5.61k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
6250
5.61k
        : args(std::apply(make_argptrs<Args...>, a))
6251
5.61k
    {
6252
5.61k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
6250
5.61k
        : args(std::apply(make_argptrs<Args...>, a))
6251
5.61k
    {
6252
5.61k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
6250
5.61k
        : args(std::apply(make_argptrs<Args...>, a))
6251
5.61k
    {
6252
5.61k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, wchar_t>::scan_arg_store(std::__1::tuple<wchar_t>&)
Line
Count
Source
6250
11.2k
        : args(std::apply(make_argptrs<Args...>, a))
6251
11.2k
    {
6252
11.2k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, int>::scan_arg_store(std::__1::tuple<int>&)
Line
Count
Source
6250
11.2k
        : args(std::apply(make_argptrs<Args...>, a))
6251
11.2k
    {
6252
11.2k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, unsigned int>::scan_arg_store(std::__1::tuple<unsigned int>&)
Line
Count
Source
6250
11.2k
        : args(std::apply(make_argptrs<Args...>, a))
6251
11.2k
    {
6252
11.2k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, double>::scan_arg_store(std::__1::tuple<double>&)
Line
Count
Source
6250
11.2k
        : args(std::apply(make_argptrs<Args...>, a))
6251
11.2k
    {
6252
11.2k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, bool>::scan_arg_store(std::__1::tuple<bool>&)
Line
Count
Source
6250
11.2k
        : args(std::apply(make_argptrs<Args...>, a))
6251
11.2k
    {
6252
11.2k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, void*>::scan_arg_store(std::__1::tuple<void*>&)
Line
Count
Source
6250
11.2k
        : args(std::apply(make_argptrs<Args...>, a))
6251
11.2k
    {
6252
11.2k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
6250
11.2k
        : args(std::apply(make_argptrs<Args...>, a))
6251
11.2k
    {
6252
11.2k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
6250
11.2k
        : args(std::apply(make_argptrs<Args...>, a))
6251
11.2k
    {
6252
11.2k
    }
scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_arg_store(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
6250
11.2k
        : args(std::apply(make_argptrs<Args...>, a))
6251
11.2k
    {
6252
11.2k
    }
6253
6254
    argptrs_type args;
6255
6256
private:
6257
    template <typename... A>
6258
    static constexpr argptrs_type make_argptrs(A&... args) noexcept
6259
151k
    {
6260
151k
        return {detail::make_arg<
6261
151k
            kind, Context,
6262
151k
            mapped_type_constant<remove_cvref_t<A>,
6263
151k
                                 typename Context::char_type>::value>(args)...};
6264
151k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, char>::make_argptrs<char>(char&)
Line
Count
Source
6259
5.61k
    {
6260
5.61k
        return {detail::make_arg<
6261
5.61k
            kind, Context,
6262
5.61k
            mapped_type_constant<remove_cvref_t<A>,
6263
5.61k
                                 typename Context::char_type>::value>(args)...};
6264
5.61k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, int>::make_argptrs<int>(int&)
Line
Count
Source
6259
5.61k
    {
6260
5.61k
        return {detail::make_arg<
6261
5.61k
            kind, Context,
6262
5.61k
            mapped_type_constant<remove_cvref_t<A>,
6263
5.61k
                                 typename Context::char_type>::value>(args)...};
6264
5.61k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, unsigned int>::make_argptrs<unsigned int>(unsigned int&)
Line
Count
Source
6259
5.61k
    {
6260
5.61k
        return {detail::make_arg<
6261
5.61k
            kind, Context,
6262
5.61k
            mapped_type_constant<remove_cvref_t<A>,
6263
5.61k
                                 typename Context::char_type>::value>(args)...};
6264
5.61k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>::make_argptrs<double>(double&)
Line
Count
Source
6259
5.61k
    {
6260
5.61k
        return {detail::make_arg<
6261
5.61k
            kind, Context,
6262
5.61k
            mapped_type_constant<remove_cvref_t<A>,
6263
5.61k
                                 typename Context::char_type>::value>(args)...};
6264
5.61k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, bool>::make_argptrs<bool>(bool&)
Line
Count
Source
6259
5.61k
    {
6260
5.61k
        return {detail::make_arg<
6261
5.61k
            kind, Context,
6262
5.61k
            mapped_type_constant<remove_cvref_t<A>,
6263
5.61k
                                 typename Context::char_type>::value>(args)...};
6264
5.61k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, void*>::make_argptrs<void*>(void*&)
Line
Count
Source
6259
5.61k
    {
6260
5.61k
        return {detail::make_arg<
6261
5.61k
            kind, Context,
6262
5.61k
            mapped_type_constant<remove_cvref_t<A>,
6263
5.61k
                                 typename Context::char_type>::value>(args)...};
6264
5.61k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
6259
5.61k
    {
6260
5.61k
        return {detail::make_arg<
6261
5.61k
            kind, Context,
6262
5.61k
            mapped_type_constant<remove_cvref_t<A>,
6263
5.61k
                                 typename Context::char_type>::value>(args)...};
6264
5.61k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
6259
5.61k
    {
6260
5.61k
        return {detail::make_arg<
6261
5.61k
            kind, Context,
6262
5.61k
            mapped_type_constant<remove_cvref_t<A>,
6263
5.61k
                                 typename Context::char_type>::value>(args)...};
6264
5.61k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::make_argptrs<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
6259
5.61k
    {
6260
5.61k
        return {detail::make_arg<
6261
5.61k
            kind, Context,
6262
5.61k
            mapped_type_constant<remove_cvref_t<A>,
6263
5.61k
                                 typename Context::char_type>::value>(args)...};
6264
5.61k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, wchar_t>::make_argptrs<wchar_t>(wchar_t&)
Line
Count
Source
6259
11.2k
    {
6260
11.2k
        return {detail::make_arg<
6261
11.2k
            kind, Context,
6262
11.2k
            mapped_type_constant<remove_cvref_t<A>,
6263
11.2k
                                 typename Context::char_type>::value>(args)...};
6264
11.2k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, int>::make_argptrs<int>(int&)
Line
Count
Source
6259
11.2k
    {
6260
11.2k
        return {detail::make_arg<
6261
11.2k
            kind, Context,
6262
11.2k
            mapped_type_constant<remove_cvref_t<A>,
6263
11.2k
                                 typename Context::char_type>::value>(args)...};
6264
11.2k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, unsigned int>::make_argptrs<unsigned int>(unsigned int&)
Line
Count
Source
6259
11.2k
    {
6260
11.2k
        return {detail::make_arg<
6261
11.2k
            kind, Context,
6262
11.2k
            mapped_type_constant<remove_cvref_t<A>,
6263
11.2k
                                 typename Context::char_type>::value>(args)...};
6264
11.2k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, double>::make_argptrs<double>(double&)
Line
Count
Source
6259
11.2k
    {
6260
11.2k
        return {detail::make_arg<
6261
11.2k
            kind, Context,
6262
11.2k
            mapped_type_constant<remove_cvref_t<A>,
6263
11.2k
                                 typename Context::char_type>::value>(args)...};
6264
11.2k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, bool>::make_argptrs<bool>(bool&)
Line
Count
Source
6259
11.2k
    {
6260
11.2k
        return {detail::make_arg<
6261
11.2k
            kind, Context,
6262
11.2k
            mapped_type_constant<remove_cvref_t<A>,
6263
11.2k
                                 typename Context::char_type>::value>(args)...};
6264
11.2k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, void*>::make_argptrs<void*>(void*&)
Line
Count
Source
6259
11.2k
    {
6260
11.2k
        return {detail::make_arg<
6261
11.2k
            kind, Context,
6262
11.2k
            mapped_type_constant<remove_cvref_t<A>,
6263
11.2k
                                 typename Context::char_type>::value>(args)...};
6264
11.2k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::make_argptrs<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Line
Count
Source
6259
11.2k
    {
6260
11.2k
        return {detail::make_arg<
6261
11.2k
            kind, Context,
6262
11.2k
            mapped_type_constant<remove_cvref_t<A>,
6263
11.2k
                                 typename Context::char_type>::value>(args)...};
6264
11.2k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::make_argptrs<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >&)
Line
Count
Source
6259
11.2k
    {
6260
11.2k
        return {detail::make_arg<
6261
11.2k
            kind, Context,
6262
11.2k
            mapped_type_constant<remove_cvref_t<A>,
6263
11.2k
                                 typename Context::char_type>::value>(args)...};
6264
11.2k
    }
std::__1::array<void*, 1ul> scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::make_argptrs<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
6259
11.2k
    {
6260
11.2k
        return {detail::make_arg<
6261
11.2k
            kind, Context,
6262
11.2k
            mapped_type_constant<remove_cvref_t<A>,
6263
11.2k
                                 typename Context::char_type>::value>(args)...};
6264
11.2k
    }
6265
};
6266
6267
}  // namespace detail
6268
6269
/**
6270
 * Creates a type-erased argument store over the arguments in `values`.
6271
 */
6272
template <typename Context = scan_context, typename... Args>
6273
constexpr auto make_scan_args(std::tuple<Args...>& values)
6274
151k
{
6275
151k
    detail::check_scan_arg_types<Args...>();
6276
151k
    return detail::scan_arg_store<Context, Args...>(values);
6277
151k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, char>(std::__1::tuple<char>&)
Line
Count
Source
6274
5.61k
{
6275
5.61k
    detail::check_scan_arg_types<Args...>();
6276
5.61k
    return detail::scan_arg_store<Context, Args...>(values);
6277
5.61k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, int>(std::__1::tuple<int>&)
Line
Count
Source
6274
5.61k
{
6275
5.61k
    detail::check_scan_arg_types<Args...>();
6276
5.61k
    return detail::scan_arg_store<Context, Args...>(values);
6277
5.61k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, unsigned int>(std::__1::tuple<unsigned int>&)
Line
Count
Source
6274
5.61k
{
6275
5.61k
    detail::check_scan_arg_types<Args...>();
6276
5.61k
    return detail::scan_arg_store<Context, Args...>(values);
6277
5.61k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double>(std::__1::tuple<double>&)
Line
Count
Source
6274
5.61k
{
6275
5.61k
    detail::check_scan_arg_types<Args...>();
6276
5.61k
    return detail::scan_arg_store<Context, Args...>(values);
6277
5.61k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, bool>(std::__1::tuple<bool>&)
Line
Count
Source
6274
5.61k
{
6275
5.61k
    detail::check_scan_arg_types<Args...>();
6276
5.61k
    return detail::scan_arg_store<Context, Args...>(values);
6277
5.61k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, void*>(std::__1::tuple<void*>&)
Line
Count
Source
6274
5.61k
{
6275
5.61k
    detail::check_scan_arg_types<Args...>();
6276
5.61k
    return detail::scan_arg_store<Context, Args...>(values);
6277
5.61k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
6274
5.61k
{
6275
5.61k
    detail::check_scan_arg_types<Args...>();
6276
5.61k
    return detail::scan_arg_store<Context, Args...>(values);
6277
5.61k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
6274
5.61k
{
6275
5.61k
    detail::check_scan_arg_types<Args...>();
6276
5.61k
    return detail::scan_arg_store<Context, Args...>(values);
6277
5.61k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::tuple<std::__1::basic_string_view<char, std::__1::char_traits<char> > >&)
Line
Count
Source
6274
5.61k
{
6275
5.61k
    detail::check_scan_arg_types<Args...>();
6276
5.61k
    return detail::scan_arg_store<Context, Args...>(values);
6277
5.61k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, wchar_t>(std::__1::tuple<wchar_t>&)
Line
Count
Source
6274
11.2k
{
6275
11.2k
    detail::check_scan_arg_types<Args...>();
6276
11.2k
    return detail::scan_arg_store<Context, Args...>(values);
6277
11.2k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, int>(std::__1::tuple<int>&)
Line
Count
Source
6274
11.2k
{
6275
11.2k
    detail::check_scan_arg_types<Args...>();
6276
11.2k
    return detail::scan_arg_store<Context, Args...>(values);
6277
11.2k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, unsigned int>(std::__1::tuple<unsigned int>&)
Line
Count
Source
6274
11.2k
{
6275
11.2k
    detail::check_scan_arg_types<Args...>();
6276
11.2k
    return detail::scan_arg_store<Context, Args...>(values);
6277
11.2k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, double>(std::__1::tuple<double>&)
Line
Count
Source
6274
11.2k
{
6275
11.2k
    detail::check_scan_arg_types<Args...>();
6276
11.2k
    return detail::scan_arg_store<Context, Args...>(values);
6277
11.2k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, bool>(std::__1::tuple<bool>&)
Line
Count
Source
6274
11.2k
{
6275
11.2k
    detail::check_scan_arg_types<Args...>();
6276
11.2k
    return detail::scan_arg_store<Context, Args...>(values);
6277
11.2k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, void*>(std::__1::tuple<void*>&)
Line
Count
Source
6274
11.2k
{
6275
11.2k
    detail::check_scan_arg_types<Args...>();
6276
11.2k
    return detail::scan_arg_store<Context, Args...>(values);
6277
11.2k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::tuple<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&)
Line
Count
Source
6274
11.2k
{
6275
11.2k
    detail::check_scan_arg_types<Args...>();
6276
11.2k
    return detail::scan_arg_store<Context, Args...>(values);
6277
11.2k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(std::__1::tuple<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&)
Line
Count
Source
6274
11.2k
{
6275
11.2k
    detail::check_scan_arg_types<Args...>();
6276
11.2k
    return detail::scan_arg_store<Context, Args...>(values);
6277
11.2k
}
auto scn::v4::make_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::tuple<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&)
Line
Count
Source
6274
11.2k
{
6275
11.2k
    detail::check_scan_arg_types<Args...>();
6276
11.2k
    return detail::scan_arg_store<Context, Args...>(values);
6277
11.2k
}
6278
6279
template <typename... Args>
6280
constexpr auto make_wscan_args(std::tuple<Args...>& values)
6281
{
6282
    detail::check_scan_arg_types<Args...>();
6283
    return detail::scan_arg_store<wscan_context, Args...>(values);
6284
}
6285
6286
/**
6287
 * A view over a collection of scanning arguments (`scan_arg_store`).
6288
 *
6289
 * Passed to `scn::vscan`, where it's automatically constructed from a
6290
 * `scan_arg_store`.
6291
 */
6292
template <typename Context>
6293
class basic_scan_args {
6294
public:
6295
0
    constexpr basic_scan_args() = default;
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args()
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args()
6296
6297
    template <typename... Args>
6298
    SCN_IMPLICIT constexpr basic_scan_args(
6299
        const detail::scan_arg_store<Context, Args...>& store) noexcept
6300
151k
        : basic_scan_args(store.desc, store.args.data())
6301
151k
    {
6302
151k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<char>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, char> const&)
Line
Count
Source
6300
5.61k
        : basic_scan_args(store.desc, store.args.data())
6301
5.61k
    {
6302
5.61k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<int>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, int> const&)
Line
Count
Source
6300
5.61k
        : basic_scan_args(store.desc, store.args.data())
6301
5.61k
    {
6302
5.61k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<unsigned int>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, unsigned int> const&)
Line
Count
Source
6300
5.61k
        : basic_scan_args(store.desc, store.args.data())
6301
5.61k
    {
6302
5.61k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<double>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, double> const&)
Line
Count
Source
6300
5.61k
        : basic_scan_args(store.desc, store.args.data())
6301
5.61k
    {
6302
5.61k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<bool>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, bool> const&)
Line
Count
Source
6300
5.61k
        : basic_scan_args(store.desc, store.args.data())
6301
5.61k
    {
6302
5.61k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<void*>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, void*> const&)
Line
Count
Source
6300
5.61k
        : basic_scan_args(store.desc, store.args.data())
6301
5.61k
    {
6302
5.61k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
6300
5.61k
        : basic_scan_args(store.desc, store.args.data())
6301
5.61k
    {
6302
5.61k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > const&)
Line
Count
Source
6300
5.61k
        : basic_scan_args(store.desc, store.args.data())
6301
5.61k
    {
6302
5.61k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>, std::__1::basic_string_view<char, std::__1::char_traits<char> > > const&)
Line
Count
Source
6300
5.61k
        : basic_scan_args(store.desc, store.args.data())
6301
5.61k
    {
6302
5.61k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<wchar_t>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, wchar_t> const&)
Line
Count
Source
6300
11.2k
        : basic_scan_args(store.desc, store.args.data())
6301
11.2k
    {
6302
11.2k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<int>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, int> const&)
Line
Count
Source
6300
11.2k
        : basic_scan_args(store.desc, store.args.data())
6301
11.2k
    {
6302
11.2k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<unsigned int>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, unsigned int> const&)
Line
Count
Source
6300
11.2k
        : basic_scan_args(store.desc, store.args.data())
6301
11.2k
    {
6302
11.2k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<double>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, double> const&)
Line
Count
Source
6300
11.2k
        : basic_scan_args(store.desc, store.args.data())
6301
11.2k
    {
6302
11.2k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<bool>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, bool> const&)
Line
Count
Source
6300
11.2k
        : basic_scan_args(store.desc, store.args.data())
6301
11.2k
    {
6302
11.2k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<void*>(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, void*> const&)
Line
Count
Source
6300
11.2k
        : basic_scan_args(store.desc, store.args.data())
6301
11.2k
    {
6302
11.2k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&)
Line
Count
Source
6300
11.2k
        : basic_scan_args(store.desc, store.args.data())
6301
11.2k
    {
6302
11.2k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > > const&)
Line
Count
Source
6300
11.2k
        : basic_scan_args(store.desc, store.args.data())
6301
11.2k
    {
6302
11.2k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(scn::v4::detail::scan_arg_store<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > > const&)
Line
Count
Source
6300
11.2k
        : basic_scan_args(store.desc, store.args.data())
6301
11.2k
    {
6302
11.2k
    }
6303
6304
    /**
6305
     * \return `basic_scan_arg` at index `id`. Empty `basic_scan_arg` if
6306
     * there's no argument at index `id`.
6307
     */
6308
    SCN_NODISCARD constexpr basic_scan_arg<Context> get(std::size_t id) const
6309
99.8k
    {
6310
99.8k
        if (SCN_UNLIKELY(!is_packed())) {
6311
0
            if (SCN_LIKELY(id < max_size())) {
6312
0
                return m_args[id];
6313
0
            }
6314
0
            return {};
6315
0
        }
6316
6317
99.8k
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
6318
136
            return {};
6319
136
        }
6320
6321
99.7k
        const auto t = type(id);
6322
99.7k
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
6323
2.30k
            return {};
6324
2.30k
        }
6325
6326
97.3k
        basic_scan_arg<Context> arg;
6327
97.3k
        arg.m_type = t;
6328
97.3k
        if (is_only_builtin()) {
6329
97.3k
            arg.m_value.ref_value = m_builtin_values[id];
6330
97.3k
        }
6331
0
        else {
6332
0
            arg.m_value = m_values[id];
6333
0
        }
6334
97.3k
        return arg;
6335
99.7k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::get(unsigned long) const
Line
Count
Source
6309
30.9k
    {
6310
30.9k
        if (SCN_UNLIKELY(!is_packed())) {
6311
0
            if (SCN_LIKELY(id < max_size())) {
6312
0
                return m_args[id];
6313
0
            }
6314
0
            return {};
6315
0
        }
6316
6317
30.9k
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
6318
68
            return {};
6319
68
        }
6320
6321
30.8k
        const auto t = type(id);
6322
30.8k
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
6323
1.29k
            return {};
6324
1.29k
        }
6325
6326
29.5k
        basic_scan_arg<Context> arg;
6327
29.5k
        arg.m_type = t;
6328
29.5k
        if (is_only_builtin()) {
6329
29.5k
            arg.m_value.ref_value = m_builtin_values[id];
6330
29.5k
        }
6331
0
        else {
6332
0
            arg.m_value = m_values[id];
6333
0
        }
6334
29.5k
        return arg;
6335
30.8k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::get(unsigned long) const
Line
Count
Source
6309
68.9k
    {
6310
68.9k
        if (SCN_UNLIKELY(!is_packed())) {
6311
0
            if (SCN_LIKELY(id < max_size())) {
6312
0
                return m_args[id];
6313
0
            }
6314
0
            return {};
6315
0
        }
6316
6317
68.9k
        if (SCN_UNLIKELY(id >= detail::max_packed_args)) {
6318
68
            return {};
6319
68
        }
6320
6321
68.8k
        const auto t = type(id);
6322
68.8k
        if (SCN_UNLIKELY(t == detail::arg_type::none_type)) {
6323
1.01k
            return {};
6324
1.01k
        }
6325
6326
67.8k
        basic_scan_arg<Context> arg;
6327
67.8k
        arg.m_type = t;
6328
67.8k
        if (is_only_builtin()) {
6329
67.8k
            arg.m_value.ref_value = m_builtin_values[id];
6330
67.8k
        }
6331
0
        else {
6332
0
            arg.m_value = m_values[id];
6333
0
        }
6334
67.8k
        return arg;
6335
68.8k
    }
6336
6337
    /**
6338
     * \return Number of arguments in `*this`.
6339
     */
6340
    SCN_NODISCARD constexpr std::size_t size() const
6341
151k
    {
6342
151k
        if (SCN_UNLIKELY(!is_packed())) {
6343
0
            return max_size();
6344
0
        }
6345
6346
151k
        return static_cast<std::size_t>(m_desc &
6347
151k
                                        ((1 << detail::packed_arg_bits) - 1));
6348
151k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::size() const
Line
Count
Source
6341
50.5k
    {
6342
50.5k
        if (SCN_UNLIKELY(!is_packed())) {
6343
0
            return max_size();
6344
0
        }
6345
6346
50.5k
        return static_cast<std::size_t>(m_desc &
6347
50.5k
                                        ((1 << detail::packed_arg_bits) - 1));
6348
50.5k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::size() const
Line
Count
Source
6341
101k
    {
6342
101k
        if (SCN_UNLIKELY(!is_packed())) {
6343
0
            return max_size();
6344
0
        }
6345
6346
101k
        return static_cast<std::size_t>(m_desc &
6347
101k
                                        ((1 << detail::packed_arg_bits) - 1));
6348
101k
    }
6349
6350
private:
6351
    constexpr explicit basic_scan_args(size_t desc, void* const* data)
6352
151k
        : m_desc(desc), m_builtin_values(data)
6353
151k
    {
6354
151k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::basic_scan_args(unsigned long, void* const*)
Line
Count
Source
6352
50.5k
        : m_desc(desc), m_builtin_values(data)
6353
50.5k
    {
6354
50.5k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::basic_scan_args(unsigned long, void* const*)
Line
Count
Source
6352
101k
        : m_desc(desc), m_builtin_values(data)
6353
101k
    {
6354
101k
    }
6355
    constexpr explicit basic_scan_args(size_t desc,
6356
                                       const detail::arg_value* data)
6357
        : m_desc(desc), m_values(data)
6358
    {
6359
    }
6360
    constexpr explicit basic_scan_args(size_t desc,
6361
                                       const basic_scan_arg<Context>* data)
6362
        : m_desc(desc), m_args(data)
6363
    {
6364
    }
6365
6366
    SCN_NODISCARD constexpr bool is_packed() const
6367
251k
    {
6368
251k
        return (m_desc & detail::is_unpacked_bit) == 0;
6369
251k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::is_packed() const
Line
Count
Source
6367
81.4k
    {
6368
81.4k
        return (m_desc & detail::is_unpacked_bit) == 0;
6369
81.4k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::is_packed() const
Line
Count
Source
6367
170k
    {
6368
170k
        return (m_desc & detail::is_unpacked_bit) == 0;
6369
170k
    }
6370
    SCN_NODISCARD constexpr bool is_only_builtin() const
6371
97.3k
    {
6372
97.3k
        return (m_desc & detail::has_custom_types_bit) == 0;
6373
97.3k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::is_only_builtin() const
Line
Count
Source
6371
29.5k
    {
6372
29.5k
        return (m_desc & detail::has_custom_types_bit) == 0;
6373
29.5k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::is_only_builtin() const
Line
Count
Source
6371
67.8k
    {
6372
67.8k
        return (m_desc & detail::has_custom_types_bit) == 0;
6373
67.8k
    }
6374
6375
    SCN_NODISCARD constexpr detail::arg_type type(std::size_t index) const
6376
99.7k
    {
6377
        // First (0th) index is size, types start after that
6378
99.7k
        const auto shift = (index + 1) * detail::packed_arg_bits;
6379
99.7k
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
6380
99.7k
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
6381
99.7k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::type(unsigned long) const
Line
Count
Source
6376
30.8k
    {
6377
        // First (0th) index is size, types start after that
6378
30.8k
        const auto shift = (index + 1) * detail::packed_arg_bits;
6379
30.8k
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
6380
30.8k
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
6381
30.8k
    }
scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::type(unsigned long) const
Line
Count
Source
6376
68.8k
    {
6377
        // First (0th) index is size, types start after that
6378
68.8k
        const auto shift = (index + 1) * detail::packed_arg_bits;
6379
68.8k
        const std::size_t mask = (1 << detail::packed_arg_bits) - 1;
6380
68.8k
        return static_cast<detail::arg_type>((m_desc >> shift) & mask);
6381
68.8k
    }
6382
6383
    SCN_NODISCARD constexpr std::size_t max_size() const
6384
0
    {
6385
0
        return SCN_LIKELY(is_packed()) ? detail::max_packed_args
6386
0
                                       : (m_desc & ~detail::is_unpacked_bit &
6387
0
                                          ~detail::has_custom_types_bit);
6388
0
    }
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::max_size() const
Unexecuted instantiation: scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::max_size() const
6389
6390
    size_t m_desc{0};
6391
    union {
6392
        void* const* m_builtin_values;
6393
        const detail::arg_value* m_values;
6394
        const basic_scan_arg<Context>* m_args{nullptr};
6395
    };
6396
};
6397
6398
template <typename Context, typename... Args>
6399
basic_scan_args(const detail::scan_arg_store<Context, Args...>&)
6400
    -> basic_scan_args<Context>;
6401
6402
/////////////////////////////////////////////////////////////////
6403
// scan_parse_context
6404
/////////////////////////////////////////////////////////////////
6405
6406
template <typename T>
6407
struct source_tag_type {
6408
    using type = T;
6409
};
6410
template <typename T>
6411
inline constexpr auto source_tag = source_tag_type<T>{};
6412
6413
/**
6414
 * Format string parsing context, wrapping the format string being parsed,
6415
 * and a counter for argument indexing.
6416
 *
6417
 * \ingroup ctx
6418
 */
6419
template <typename CharT>
6420
class basic_scan_parse_context {
6421
public:
6422
    using char_type = CharT;
6423
    using iterator = typename std::basic_string_view<CharT>::const_pointer;
6424
    using const_iterator = iterator;
6425
6426
    /**
6427
     * Construct a `basic_scan_parse_context` over a format string `format`.
6428
     */
6429
    [[deprecated(
6430
        "Use the source_tag constructor instead,"
6431
        "to get more compile-time checking")]]
6432
    explicit constexpr basic_scan_parse_context(
6433
        std::basic_string_view<CharT> format,
6434
        int next_arg_id = 0)
6435
        : m_format{format}, m_next_arg_id{next_arg_id}
6436
    {
6437
    }
6438
6439
    template <typename Source>
6440
    explicit constexpr basic_scan_parse_context(
6441
        source_tag_type<Source>,
6442
        std::basic_string_view<CharT> format,
6443
        int next_arg_id = 0)
6444
151k
        : m_format{format},
6445
151k
          m_next_arg_id{next_arg_id},
6446
151k
          m_is_contiguous(ranges::range<Source> &&
6447
151k
                          ranges::contiguous_range<Source>),
6448
          m_is_borrowed(
6449
151k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6450
151k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6451
151k
    {
6452
151k
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&>(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Line
Count
Source
6444
50.5k
        : m_format{format},
6445
50.5k
          m_next_arg_id{next_arg_id},
6446
50.5k
          m_is_contiguous(ranges::range<Source> &&
6447
50.5k
                          ranges::contiguous_range<Source>),
6448
          m_is_borrowed(
6449
50.5k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6450
50.5k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6451
50.5k
    {
6452
50.5k
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<char>::basic_scan_parse_context<scn::v4::detail::basic_scan_buffer<char>&>(scn::v4::source_tag_type<scn::v4::detail::basic_scan_buffer<char>&>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, int)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&>(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Line
Count
Source
6444
101k
        : m_format{format},
6445
101k
          m_next_arg_id{next_arg_id},
6446
101k
          m_is_contiguous(ranges::range<Source> &&
6447
101k
                          ranges::contiguous_range<Source>),
6448
          m_is_borrowed(
6449
101k
              (ranges::range<Source> && ranges::borrowed_range<Source>) ||
6450
101k
              std::is_same_v<detail::remove_cvref_t<Source>, std::FILE*>)
6451
101k
    {
6452
101k
    }
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::source_tag_type<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
Unexecuted instantiation: scn::v4::basic_scan_parse_context<wchar_t>::basic_scan_parse_context<scn::v4::detail::basic_scan_buffer<wchar_t>&>(scn::v4::source_tag_type<scn::v4::detail::basic_scan_buffer<wchar_t>&>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, int)
6453
6454
    basic_scan_parse_context(const basic_scan_parse_context&) = delete;
6455
    basic_scan_parse_context& operator=(const basic_scan_parse_context&) =
6456
        delete;
6457
    basic_scan_parse_context(basic_scan_parse_context&&) = delete;
6458
    basic_scan_parse_context& operator=(basic_scan_parse_context&&) = delete;
6459
    ~basic_scan_parse_context() = default;
6460
6461
    /// Returns an iterator pointing to the beginning of the format string
6462
    constexpr auto begin() const noexcept
6463
72.1k
    {
6464
72.1k
        return m_format.data();
6465
72.1k
    }
scn::v4::basic_scan_parse_context<char>::begin() const
Line
Count
Source
6463
47.0k
    {
6464
47.0k
        return m_format.data();
6465
47.0k
    }
scn::v4::basic_scan_parse_context<wchar_t>::begin() const
Line
Count
Source
6463
25.1k
    {
6464
25.1k
        return m_format.data();
6465
25.1k
    }
6466
    /// Returns an iterator pointing to the end of the format string
6467
    constexpr auto end() const noexcept
6468
    {
6469
        return m_format.data() + m_format.size();
6470
    }
6471
6472
    /// Advance the beginning of the format string to `it`
6473
    constexpr void advance_to(iterator it)
6474
33.2k
    {
6475
33.2k
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
6476
33.2k
    }
scn::v4::basic_scan_parse_context<char>::advance_to(char const*)
Line
Count
Source
6474
21.9k
    {
6475
21.9k
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
6476
21.9k
    }
scn::v4::basic_scan_parse_context<wchar_t>::advance_to(wchar_t const*)
Line
Count
Source
6474
11.2k
    {
6475
11.2k
        m_format.remove_prefix(static_cast<std::size_t>(it - begin()));
6476
11.2k
    }
6477
6478
    constexpr size_t next_arg_id()
6479
98.0k
    {
6480
98.0k
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
6481
188
            on_error(
6482
188
                "Cannot switch from manual to automatic argument indexing");
6483
188
            return 0;
6484
188
        }
6485
6486
97.8k
        auto id = static_cast<size_t>(m_next_arg_id++);
6487
97.8k
        do_check_arg_id(id);
6488
97.8k
        return id;
6489
98.0k
    }
scn::v4::basic_scan_parse_context<char>::next_arg_id()
Line
Count
Source
6479
30.4k
    {
6480
30.4k
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
6481
42
            on_error(
6482
42
                "Cannot switch from manual to automatic argument indexing");
6483
42
            return 0;
6484
42
        }
6485
6486
30.3k
        auto id = static_cast<size_t>(m_next_arg_id++);
6487
30.3k
        do_check_arg_id(id);
6488
30.3k
        return id;
6489
30.4k
    }
scn::v4::basic_scan_parse_context<wchar_t>::next_arg_id()
Line
Count
Source
6479
67.5k
    {
6480
67.5k
        if (SCN_UNLIKELY(m_next_arg_id < 0)) {
6481
146
            on_error(
6482
146
                "Cannot switch from manual to automatic argument indexing");
6483
146
            return 0;
6484
146
        }
6485
6486
67.4k
        auto id = static_cast<size_t>(m_next_arg_id++);
6487
67.4k
        do_check_arg_id(id);
6488
67.4k
        return id;
6489
67.5k
    }
6490
6491
    constexpr void check_arg_id(std::size_t id)
6492
1.89k
    {
6493
1.89k
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
6494
148
            on_error(
6495
148
                "Cannot switch from manual to automatic argument indexing");
6496
148
            return;
6497
148
        }
6498
1.74k
        m_next_arg_id = -1;
6499
1.74k
        do_check_arg_id(id);
6500
1.74k
    }
scn::v4::basic_scan_parse_context<char>::check_arg_id(unsigned long)
Line
Count
Source
6492
538
    {
6493
538
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
6494
70
            on_error(
6495
70
                "Cannot switch from manual to automatic argument indexing");
6496
70
            return;
6497
70
        }
6498
468
        m_next_arg_id = -1;
6499
468
        do_check_arg_id(id);
6500
468
    }
scn::v4::basic_scan_parse_context<wchar_t>::check_arg_id(unsigned long)
Line
Count
Source
6492
1.35k
    {
6493
1.35k
        if (SCN_UNLIKELY(m_next_arg_id > 0)) {
6494
78
            on_error(
6495
78
                "Cannot switch from manual to automatic argument indexing");
6496
78
            return;
6497
78
        }
6498
1.27k
        m_next_arg_id = -1;
6499
1.27k
        do_check_arg_id(id);
6500
1.27k
    }
6501
6502
    /**
6503
     * Fail format string parsing with the message `msg`.
6504
     * Calling this member function is not a constant expression,
6505
     * causing a compile-time error, if compile-time format string checking is
6506
     * enabled.
6507
     */
6508
    scan_error on_error(const char* msg)
6509
336
    {
6510
336
        m_error = unexpected(detail::handle_error(
6511
336
            scan_error{scan_error::invalid_format_string, msg}));
6512
336
        return m_error.error();
6513
336
    }
scn::v4::basic_scan_parse_context<char>::on_error(char const*)
Line
Count
Source
6509
112
    {
6510
112
        m_error = unexpected(detail::handle_error(
6511
112
            scan_error{scan_error::invalid_format_string, msg}));
6512
112
        return m_error.error();
6513
112
    }
scn::v4::basic_scan_parse_context<wchar_t>::on_error(char const*)
Line
Count
Source
6509
224
    {
6510
224
        m_error = unexpected(detail::handle_error(
6511
224
            scan_error{scan_error::invalid_format_string, msg}));
6512
224
        return m_error.error();
6513
224
    }
6514
6515
    scan_expected<void> get_error()
6516
    {
6517
        return m_error;
6518
    }
6519
6520
    [[nodiscard]] constexpr bool is_source_contiguous() const
6521
    {
6522
        return m_is_contiguous;
6523
    }
6524
6525
    [[nodiscard]] constexpr bool is_source_borrowed() const
6526
    {
6527
        return m_is_borrowed;
6528
    }
6529
6530
protected:
6531
    constexpr void do_check_arg_id(size_t id);
6532
6533
    std::basic_string_view<CharT> m_format;
6534
    scan_expected<void> m_error{};
6535
    int m_next_arg_id{0};
6536
    bool m_is_contiguous{false}, m_is_borrowed{false};
6537
};
6538
6539
/////////////////////////////////////////////////////////////////
6540
// Result types
6541
/////////////////////////////////////////////////////////////////
6542
6543
namespace detail {
6544
template <typename... Args>
6545
struct scan_result_value_storage {
6546
public:
6547
    using tuple_type = std::tuple<Args...>;
6548
6549
151k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<char>::scan_result_value_storage()
Line
Count
Source
6549
5.61k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<int>::scan_result_value_storage()
Line
Count
Source
6549
16.8k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<unsigned int>::scan_result_value_storage()
Line
Count
Source
6549
16.8k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<double>::scan_result_value_storage()
Line
Count
Source
6549
16.8k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<bool>::scan_result_value_storage()
Line
Count
Source
6549
16.8k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<void*>::scan_result_value_storage()
Line
Count
Source
6549
16.8k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result_value_storage()
Line
Count
Source
6549
16.8k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result_value_storage()
Line
Count
Source
6549
16.8k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result_value_storage()
Line
Count
Source
6549
5.61k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<wchar_t>::scan_result_value_storage()
Line
Count
Source
6549
11.2k
    constexpr scan_result_value_storage() = default;
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result_value_storage()
Line
Count
Source
6549
11.2k
    constexpr scan_result_value_storage() = default;
6550
6551
    constexpr scan_result_value_storage(tuple_type&& values)
6552
        : m_values(SCN_MOVE(values))
6553
    {
6554
    }
6555
6556
    /// Access the scanned values
6557
    tuple_type& values() &
6558
151k
    {
6559
151k
        return m_values;
6560
151k
    }
scn::v4::detail::scan_result_value_storage<char>::values() &
Line
Count
Source
6558
5.61k
    {
6559
5.61k
        return m_values;
6560
5.61k
    }
scn::v4::detail::scan_result_value_storage<int>::values() &
Line
Count
Source
6558
16.8k
    {
6559
16.8k
        return m_values;
6560
16.8k
    }
scn::v4::detail::scan_result_value_storage<unsigned int>::values() &
Line
Count
Source
6558
16.8k
    {
6559
16.8k
        return m_values;
6560
16.8k
    }
scn::v4::detail::scan_result_value_storage<double>::values() &
Line
Count
Source
6558
16.8k
    {
6559
16.8k
        return m_values;
6560
16.8k
    }
scn::v4::detail::scan_result_value_storage<bool>::values() &
Line
Count
Source
6558
16.8k
    {
6559
16.8k
        return m_values;
6560
16.8k
    }
scn::v4::detail::scan_result_value_storage<void*>::values() &
Line
Count
Source
6558
16.8k
    {
6559
16.8k
        return m_values;
6560
16.8k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::values() &
Line
Count
Source
6558
16.8k
    {
6559
16.8k
        return m_values;
6560
16.8k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::values() &
Line
Count
Source
6558
16.8k
    {
6559
16.8k
        return m_values;
6560
16.8k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<char, std::__1::char_traits<char> > >::values() &
Line
Count
Source
6558
5.61k
    {
6559
5.61k
        return m_values;
6560
5.61k
    }
scn::v4::detail::scan_result_value_storage<wchar_t>::values() &
Line
Count
Source
6558
11.2k
    {
6559
11.2k
        return m_values;
6560
11.2k
    }
scn::v4::detail::scan_result_value_storage<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::values() &
Line
Count
Source
6558
11.2k
    {
6559
11.2k
        return m_values;
6560
11.2k
    }
6561
    /// Access the scanned values
6562
    const tuple_type& values() const&
6563
    {
6564
        return m_values;
6565
    }
6566
    /// Access the scanned values
6567
    tuple_type&& values() &&
6568
    {
6569
        return SCN_MOVE(m_values);
6570
    }
6571
    /// Access the scanned values
6572
    const tuple_type&& values() const&&
6573
    {
6574
        return SCN_MOVE(m_values);
6575
    }
6576
6577
    /// Access the single scanned value
6578
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6579
    decltype(auto) value() &
6580
0
    {
6581
0
        return std::get<0>(m_values);
6582
0
    }
Unexecuted instantiation: _ZNR3scn2v46detail25scan_result_value_storageIJNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEE5valueILm1ETnPNS3_9enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
Unexecuted instantiation: _ZNR3scn2v46detail25scan_result_value_storageIJdEE5valueILm1ETnPNSt3__19enable_ifIXeqT_Li1EEvE4typeELPv0EEEDcv
6583
    /// Access the single scanned value
6584
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6585
    decltype(auto) value() const&
6586
    {
6587
        return std::get<0>(m_values);
6588
    }
6589
    /// Access the single scanned value
6590
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6591
    decltype(auto) value() &&
6592
    {
6593
        return SCN_MOVE(std::get<0>(m_values));
6594
    }
6595
    /// Access the single scanned value
6596
    template <size_t N = sizeof...(Args), std::enable_if_t<N == 1>* = nullptr>
6597
    decltype(auto) value() const&&
6598
    {
6599
        return SCN_MOVE(std::get<0>(m_values));
6600
    }
6601
6602
private:
6603
    SCN_NO_UNIQUE_ADDRESS tuple_type m_values{};
6604
};
6605
6606
struct scan_result_convert_tag {};
6607
6608
template <typename Range>
6609
struct scan_result_range_storage {
6610
    static_assert(is_specialization_of_v<Range, ranges::subrange>,
6611
                  "scan_result<Range> accepts only subranges as Ranges");
6612
6613
public:
6614
    using range_type = Range;
6615
    using iterator = ranges::iterator_t<Range>;
6616
    using sentinel = ranges::sentinel_t<Range>;
6617
6618
151k
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::scan_result_range_storage()
Line
Count
Source
6618
50.5k
    constexpr scan_result_range_storage() = default;
scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::scan_result_range_storage()
Line
Count
Source
6618
101k
    constexpr scan_result_range_storage() = default;
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_result_range_storage()
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::scan_result_range_storage()
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::scan_result_range_storage()
6619
6620
    constexpr scan_result_range_storage(range_type&& r) : m_range(SCN_MOVE(r))
6621
    {
6622
    }
6623
6624
    template <typename R>
6625
    explicit constexpr scan_result_range_storage(scan_result_convert_tag, R&& r)
6626
        : m_range(SCN_MOVE(r))
6627
    {
6628
    }
6629
6630
    /// Access the ununsed source range
6631
    range_type range() const
6632
    {
6633
        return m_range;
6634
    }
6635
6636
    /// The beginning of the unused source range
6637
    auto begin() const
6638
0
    {
6639
0
        return ranges::begin(m_range);
6640
0
    }
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::begin() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::begin() const
6641
    /// The end of the unused source range
6642
    auto end() const
6643
0
    {
6644
0
        return ranges::end(m_range);
6645
0
    }
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::end() const
Unexecuted instantiation: scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::end() const
6646
6647
    template <typename Other>
6648
    void set_range(Other&& r)
6649
4.30k
    {
6650
4.30k
        m_range = std::forward<Other>(r);
6651
4.30k
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >::set_range<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&&)
Line
Count
Source
6649
2.23k
    {
6650
2.23k
        m_range = std::forward<Other>(r);
6651
2.23k
    }
void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >::set_range<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&&)
Line
Count
Source
6649
2.07k
    {
6650
2.07k
        m_range = std::forward<Other>(r);
6651
2.07k
    }
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::set_range<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >::set_range<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >(scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >&&)
Unexecuted instantiation: void scn::v4::detail::scan_result_range_storage<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >::set_range<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&&)
6652
6653
protected:
6654
    template <typename Other>
6655
    void assign_range(Other&& r)
6656
    {
6657
        m_range = r.m_range;
6658
    }
6659
6660
private:
6661
    SCN_NO_UNIQUE_ADDRESS range_type m_range{};
6662
};
6663
6664
struct scan_result_file_storage {
6665
public:
6666
    using range_type = std::FILE*;
6667
6668
    constexpr scan_result_file_storage() = default;
6669
6670
0
    constexpr scan_result_file_storage(std::FILE* f) : m_file(f) {}
6671
6672
    /// File used for scanning
6673
    std::FILE* file() const
6674
0
    {
6675
0
        return m_file;
6676
0
    }
6677
6678
    void set_range(std::FILE* f)
6679
0
    {
6680
0
        m_file = f;
6681
0
    }
6682
6683
protected:
6684
    void assign_range(const scan_result_file_storage& f)
6685
0
    {
6686
0
        m_file = f.m_file;
6687
0
    }
6688
6689
private:
6690
    std::FILE* m_file{nullptr};
6691
};
6692
6693
struct scan_result_dangling {
6694
    using range_type = ranges::dangling;
6695
6696
    constexpr scan_result_dangling() = default;
6697
6698
    template <typename... Args>
6699
    explicit constexpr scan_result_dangling(Args&&...)
6700
    {
6701
    }
6702
6703
    range_type range() const
6704
0
    {
6705
0
        return {};
6706
0
    }
6707
6708
    ranges::dangling begin() const
6709
0
    {
6710
0
        return {};
6711
0
    }
6712
    ranges::dangling end() const
6713
0
    {
6714
0
        return {};
6715
0
    }
6716
6717
    template <typename... Args>
6718
    void set_range(Args&&...)
6719
    {
6720
    }
6721
6722
protected:
6723
    template <typename... Args>
6724
    void assign_range(Args&&...)
6725
    {
6726
    }
6727
};
6728
6729
template <typename Range>
6730
constexpr auto get_scan_result_base()
6731
0
{
6732
0
    if constexpr (std::is_same_v<remove_cvref_t<Range>, ranges::dangling>) {
6733
0
        return type_identity<scan_result_dangling>{};
6734
0
    }
6735
0
    else if constexpr (std::is_same_v<remove_cvref_t<Range>, std::FILE*>) {
6736
0
        return type_identity<scan_result_file_storage>{};
6737
0
    }
6738
0
    else {
6739
0
        return type_identity<scan_result_range_storage<Range>>{};
6740
0
    }
6741
0
}
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> > >()
Unexecuted instantiation: auto scn::v4::detail::get_scan_result_base<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >()
6742
6743
#if !SCN_DOXYGEN
6744
template <typename Range>
6745
using scan_result_base = typename decltype(get_scan_result_base<Range>())::type;
6746
#else
6747
template <typename Range>
6748
using scan_result_base = scan_result_range_storage<Range>;
6749
#endif
6750
}  // namespace detail
6751
6752
/**
6753
 * \defgroup result Result types
6754
 *
6755
 * \brief Result and error types
6756
 *
6757
 * Instead of using exceptions, `scn::scan` and others return an object of
6758
 * type `scn::scan_result`, wrapped inside a `scn::scan_expected`.
6759
 */
6760
6761
/**
6762
 * Type returned by `scan`, contains the unused input as a subrange, and the
6763
 * scanned values in a tuple.
6764
 */
6765
template <typename Range, typename... Args>
6766
class scan_result : public detail::scan_result_base<Range>,
6767
                    public detail::scan_result_value_storage<Args...> {
6768
    using range_base = detail::scan_result_base<Range>;
6769
    using value_base = detail::scan_result_value_storage<Args...>;
6770
6771
public:
6772
    using range_type = typename range_base::range_type;
6773
    using tuple_type = typename value_base::tuple_type;
6774
6775
151k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>::scan_result()
Line
Count
Source
6775
5.61k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>::scan_result()
Line
Count
Source
6775
5.61k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::scan_result()
Line
Count
Source
6775
5.61k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>::scan_result()
Line
Count
Source
6775
5.61k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>::scan_result()
Line
Count
Source
6775
5.61k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>::scan_result()
Line
Count
Source
6775
5.61k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Line
Count
Source
6775
5.61k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result()
Line
Count
Source
6775
5.61k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::scan_result()
Line
Count
Source
6775
5.61k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>::scan_result()
Line
Count
Source
6775
11.2k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::scan_result()
Line
Count
Source
6775
11.2k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::scan_result()
Line
Count
Source
6775
11.2k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::scan_result()
Line
Count
Source
6775
11.2k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>::scan_result()
Line
Count
Source
6775
11.2k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>::scan_result()
Line
Count
Source
6775
11.2k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Line
Count
Source
6775
11.2k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result()
Line
Count
Source
6775
11.2k
    constexpr scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::scan_result()
Line
Count
Source
6775
11.2k
    constexpr scan_result() = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>::scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result()
6776
6777
    constexpr scan_result(const scan_result&) = default;
6778
0
    constexpr scan_result(scan_result&&) = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::scan_result(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
6779
    constexpr scan_result& operator=(const scan_result&) = default;
6780
0
    constexpr scan_result& operator=(scan_result&&) = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, int>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, unsigned int>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, bool>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, void*>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string_view<char, std::__1::char_traits<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, int>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, unsigned int>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, bool>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, void*>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<std::__1::__wrap_iter<char*>, std::__1::__wrap_iter<char*> >, double>&&)
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator=(scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&)
6781
6782
33.7k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
6782
5.61k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
6782
5.61k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Line
Count
Source
6782
11.2k
    ~scan_result() = default;
scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::~scan_result()
Line
Count
Source
6782
11.2k
    ~scan_result() = default;
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
Unexecuted instantiation: scn::v4::scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::~scan_result()
6783
6784
    scan_result(range_type r, tuple_type&& values)
6785
        : range_base(SCN_MOVE(r)), value_base(SCN_MOVE(values))
6786
    {
6787
    }
6788
6789
    template <typename OtherR,
6790
              std::enable_if_t<std::is_constructible_v<range_type, OtherR>>* =
6791
                  nullptr>
6792
    scan_result(OtherR&& r, tuple_type&& values)
6793
        : range_base(detail::scan_result_convert_tag{}, SCN_FWD(r)),
6794
          value_base(SCN_MOVE(values))
6795
    {
6796
    }
6797
6798
    template <typename OtherR,
6799
              std::enable_if_t<
6800
                  std::is_constructible_v<range_type, OtherR> &&
6801
                  std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
6802
    SCN_IMPLICIT scan_result(const scan_result<OtherR, Args...>& o)
6803
        : range_base(detail::scan_result_convert_tag{}, o.range()),
6804
          value_base(o.values())
6805
    {
6806
    }
6807
    template <typename OtherR,
6808
              std::enable_if_t<
6809
                  std::is_constructible_v<range_type, OtherR> &&
6810
                  !std::is_convertible_v<const OtherR&, range_type>>* = nullptr>
6811
    explicit scan_result(const scan_result<OtherR, Args...>& o)
6812
        : range_base(detail::scan_result_convert_tag{}, o.range()),
6813
          value_base(o.values())
6814
    {
6815
    }
6816
6817
    template <typename OtherR,
6818
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
6819
                               std::is_convertible_v<OtherR&&, range_type>>* =
6820
                  nullptr>
6821
    SCN_IMPLICIT scan_result(scan_result<OtherR, Args...>&& o)
6822
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
6823
          value_base(SCN_MOVE(o.values()))
6824
    {
6825
    }
6826
    template <typename OtherR,
6827
              std::enable_if_t<std::is_constructible_v<range_type, OtherR> &&
6828
                               !std::is_convertible_v<OtherR&&, range_type>>* =
6829
                  nullptr>
6830
    explicit scan_result(scan_result<OtherR, Args...>&& o)
6831
        : range_base(detail::scan_result_convert_tag{}, SCN_MOVE(o.range())),
6832
          value_base(SCN_MOVE(o.values()))
6833
    {
6834
    }
6835
6836
    template <typename OtherR,
6837
              typename =
6838
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
6839
    scan_result& operator=(const scan_result<OtherR, Args...>& o)
6840
    {
6841
        this->assign_range(o);
6842
        this->values() = o.values();
6843
        return *this;
6844
    }
6845
6846
    template <typename OtherR,
6847
              typename =
6848
                  std::enable_if_t<std::is_constructible_v<range_type, OtherR>>>
6849
    scan_result& operator=(scan_result<OtherR, Args...>&& o)
6850
    {
6851
        this->assign_range(o);
6852
        this->values() = SCN_MOVE(o.values());
6853
        return *this;
6854
    }
6855
};
6856
6857
template <typename R, typename... Args>
6858
scan_result(R, std::tuple<Args...>) -> scan_result<R, Args...>;
6859
template <typename R, typename Ctx, typename... Args>
6860
scan_result(R, detail::scan_arg_store<Ctx, Args...>&)
6861
    -> scan_result<R, Args...>;
6862
6863
namespace detail {
6864
template <typename SourceRange>
6865
auto make_vscan_result_range_end(SourceRange& source)
6866
4.30k
{
6867
4.30k
    return ranges::end(source);
6868
4.30k
}
auto scn::v4::detail::make_vscan_result_range_end<std::__1::basic_string_view<char, std::__1::char_traits<char> > >(std::__1::basic_string_view<char, std::__1::char_traits<char> >&)
Line
Count
Source
6866
2.23k
{
6867
2.23k
    return ranges::end(source);
6868
2.23k
}
auto scn::v4::detail::make_vscan_result_range_end<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&)
Line
Count
Source
6866
2.07k
{
6867
2.07k
    return ranges::end(source);
6868
2.07k
}
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*> >(scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t> >(scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>&)
Unexecuted instantiation: auto scn::v4::detail::make_vscan_result_range_end<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*> >(scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>&)
6869
template <typename CharT, size_t N>
6870
auto make_vscan_result_range_end(CharT (&source)[N])
6871
    -> ranges::sentinel_t<CharT (&)[N]>
6872
{
6873
    return source + N - 1;
6874
}
6875
6876
template <typename SourceRange>
6877
auto make_vscan_result_range(SourceRange&& source, std::ptrdiff_t n)
6878
    -> borrowed_tail_subrange_t<SourceRange>
6879
4.30k
{
6880
    if constexpr (ranges::random_access_iterator<
6881
4.30k
                      ranges::iterator_t<SourceRange>>) {
6882
4.30k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6883
    }
6884
0
    else {
6885
0
        auto it = ranges::begin(source);
6886
0
        while (n > 0) {
6887
0
            --n;
6888
0
            ++it;
6889
0
        }
6890
0
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6891
0
    }
6892
4.30k
}
_ZN3scn2v46detail23make_vscan_result_rangeIRNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISA_EEE4typeEOSA_l
Line
Count
Source
6879
2.23k
{
6880
    if constexpr (ranges::random_access_iterator<
6881
2.23k
                      ranges::iterator_t<SourceRange>>) {
6882
2.23k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6883
    }
6884
    else {
6885
        auto it = ranges::begin(source);
6886
        while (n > 0) {
6887
            --n;
6888
            ++it;
6889
        }
6890
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6891
    }
6892
2.23k
}
_ZN3scn2v46detail23make_vscan_result_rangeIRNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISA_EEE4typeEOSA_l
Line
Count
Source
6879
2.07k
{
6880
    if constexpr (ranges::random_access_iterator<
6881
2.07k
                      ranges::iterator_t<SourceRange>>) {
6882
2.07k
        return {ranges::begin(source) + n, make_vscan_result_range_end(source)};
6883
    }
6884
    else {
6885
        auto it = ranges::begin(source);
6886
        while (n > 0) {
6887
            --n;
6888
            ++it;
6889
        }
6890
        return {SCN_MOVE(it), make_vscan_result_range_end(source)};
6891
    }
6892
2.07k
}
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISD_EEE4typeEOSD_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeIRNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISC_EEE4typeEOSC_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISD_EEE4typeEOSD_l
Unexecuted instantiation: _ZN3scn2v46detail23make_vscan_result_rangeINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEEENS1_22borrowed_tail_subrangeIT_Xsr6rangesE14borrowed_rangeISB_EEE4typeEOSB_l
6893
inline auto make_vscan_result_range(std::FILE* source, std::ptrdiff_t)
6894
0
{
6895
0
    return source;
6896
0
}
6897
}  // namespace detail
6898
6899
/////////////////////////////////////////////////////////////////
6900
// Format string parsing
6901
/////////////////////////////////////////////////////////////////
6902
6903
namespace detail {
6904
/// Parse context with extra data used only for compile-time checks
6905
template <typename CharT>
6906
class compile_parse_context : public basic_scan_parse_context<CharT> {
6907
    using base = basic_scan_parse_context<CharT>;
6908
6909
public:
6910
    template <typename Source>
6911
    explicit constexpr compile_parse_context(
6912
        source_tag_type<Source>,
6913
        std::basic_string_view<CharT> format_str,
6914
        int num_args,
6915
        const arg_type* types,
6916
        int next_arg_id = 0)
6917
        : base(source_tag<Source>, format_str, next_arg_id),
6918
          m_num_args(num_args),
6919
          m_types(types)
6920
    {
6921
    }
6922
6923
    SCN_NODISCARD constexpr int get_num_args() const
6924
0
    {
6925
0
        return m_num_args;
6926
0
    }
Unexecuted instantiation: scn::v4::detail::compile_parse_context<char>::get_num_args() const
Unexecuted instantiation: scn::v4::detail::compile_parse_context<wchar_t>::get_num_args() const
6927
    SCN_NODISCARD constexpr arg_type get_arg_type(std::size_t id) const
6928
    {
6929
        return m_types[id];
6930
    }
6931
6932
    SCN_GCC_PUSH
6933
    SCN_GCC_IGNORE("-Wsign-conversion")
6934
6935
    constexpr std::size_t next_arg_id()
6936
    {
6937
        auto id = base::next_arg_id();
6938
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
6939
            this->on_error("Argument not found");
6940
        }
6941
        return id;
6942
    }
6943
6944
    constexpr void check_arg_id(std::size_t id)
6945
    {
6946
        base::check_arg_id(id);
6947
        if (SCN_UNLIKELY(id >= static_cast<size_t>(m_num_args))) {
6948
            this->on_error("Argument not found");
6949
        }
6950
    }
6951
    using base::check_arg_id;
6952
6953
private:
6954
    int m_num_args;
6955
    const arg_type* m_types;
6956
6957
    SCN_GCC_POP  // -Wsign-conversion
6958
};
6959
6960
constexpr inline bool is_constant_evaluated(bool default_value = false) noexcept
6961
0
{
6962
0
#ifdef __cpp_lib_is_constant_evaluated
6963
0
    SCN_UNUSED(default_value);
6964
0
    return std::is_constant_evaluated();
6965
0
#else
6966
0
    return default_value;
6967
0
#endif
6968
0
}
6969
}  // namespace detail
6970
6971
template <typename CharT>
6972
constexpr void basic_scan_parse_context<CharT>::do_check_arg_id(size_t id)
6973
99.5k
{
6974
99.5k
    if (detail::is_constant_evaluated() &&
6975
99.5k
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6976
        // The cast below will cause an error on gcc pre-12
6977
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6978
0
        if (static_cast<int>(id) >=
6979
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6980
0
            SCN_UNLIKELY_ATTR
6981
0
            on_error("Argument not found");
6982
0
        }
6983
0
    }
6984
99.5k
}
scn::v4::basic_scan_parse_context<char>::do_check_arg_id(unsigned long)
Line
Count
Source
6973
30.8k
{
6974
30.8k
    if (detail::is_constant_evaluated() &&
6975
30.8k
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6976
        // The cast below will cause an error on gcc pre-12
6977
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6978
0
        if (static_cast<int>(id) >=
6979
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6980
0
            SCN_UNLIKELY_ATTR
6981
0
            on_error("Argument not found");
6982
0
        }
6983
0
    }
6984
30.8k
}
scn::v4::basic_scan_parse_context<wchar_t>::do_check_arg_id(unsigned long)
Line
Count
Source
6973
68.7k
{
6974
68.7k
    if (detail::is_constant_evaluated() &&
6975
68.7k
        (!SCN_GCC || SCN_GCC >= SCN_COMPILER(12, 0, 0))) {
6976
        // The cast below will cause an error on gcc pre-12
6977
0
        using parse_context_type = detail::compile_parse_context<CharT>;
6978
0
        if (static_cast<int>(id) >=
6979
0
            static_cast<parse_context_type*>(this)->get_num_args()) {
6980
0
            SCN_UNLIKELY_ATTR
6981
0
            on_error("Argument not found");
6982
0
        }
6983
0
    }
6984
68.7k
}
6985
6986
namespace detail {
6987
enum class align_type : unsigned char {
6988
    none = 0,
6989
    left = 1,   // '<'
6990
    right = 2,  // '>'
6991
    center = 3  // '^'
6992
};
6993
6994
enum class presentation_type {
6995
    none,
6996
    int_binary,            // 'b', 'B'
6997
    int_decimal,           // 'd'
6998
    int_generic,           // 'i'
6999
    int_unsigned_decimal,  // 'u'
7000
    int_octal,             // 'o'
7001
    int_hex,               // 'x', 'X'
7002
    int_arbitrary_base,    // 'rnn', 'Rnn' (R for radix)
7003
    float_hex,             // 'a', 'A'
7004
    float_scientific,      // 'e', 'E'
7005
    float_fixed,           // 'f', 'F'
7006
    float_general,         // 'g', 'G'
7007
    string,                // 's'
7008
    string_set,            // '[...]'
7009
#if !SCN_DISABLE_REGEX
7010
    regex,          // '/.../.'
7011
    regex_escaped,  // '/..\/../.'
7012
#endif
7013
    character,          // 'c'
7014
    escaped_character,  // '?'
7015
    pointer,            // 'p'
7016
};
7017
7018
#if !SCN_DISABLE_REGEX
7019
enum class regex_flags {
7020
    none = 0,
7021
    multiline = 1,   // /m
7022
    singleline = 2,  // /s
7023
    nocase = 4,      // /i
7024
    nocapture = 8,   // /n
7025
    // TODO?
7026
    // would probably need to go hand-in-hand with locale,
7027
    // where it could even be the default/only option -> no flag?
7028
    // why else would you even use locale with a regex?
7029
    // collate = 16,
7030
};
7031
7032
constexpr regex_flags operator&(regex_flags a, regex_flags b)
7033
1.55k
{
7034
1.55k
    return static_cast<regex_flags>(static_cast<unsigned>(a) &
7035
1.55k
                                    static_cast<unsigned>(b));
7036
1.55k
}
7037
constexpr regex_flags operator|(regex_flags a, regex_flags b)
7038
222
{
7039
222
    return static_cast<regex_flags>(static_cast<unsigned>(a) |
7040
222
                                    static_cast<unsigned>(b));
7041
222
}
7042
constexpr regex_flags operator^(regex_flags a, regex_flags b)
7043
0
{
7044
0
    return static_cast<regex_flags>(static_cast<unsigned>(a) ^
7045
0
                                    static_cast<unsigned>(b));
7046
0
}
7047
7048
constexpr regex_flags& operator&=(regex_flags& a, regex_flags b)
7049
0
{
7050
0
    return a = a & b;
7051
0
}
7052
constexpr regex_flags& operator|=(regex_flags& a, regex_flags b)
7053
222
{
7054
222
    return a = a | b;
7055
222
}
7056
constexpr regex_flags& operator^=(regex_flags& a, regex_flags b)
7057
0
{
7058
0
    return a = a ^ b;
7059
0
}
7060
#endif
7061
7062
class fill_type {
7063
public:
7064
    constexpr void operator=(char c)
7065
0
    {
7066
0
        m_data[0] = c;
7067
0
        m_size = 1;
7068
0
    }
7069
7070
    template <typename CharT>
7071
    constexpr void operator=(std::basic_string_view<CharT> s)
7072
4.62k
    {
7073
4.62k
        SCN_EXPECT(!s.empty());
7074
4.62k
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
7075
4.62k
        if constexpr (sizeof(CharT) == 1) {
7076
9.10k
            for (size_t i = 0; i < s.size(); ++i) {
7077
6.59k
                SCN_GCC_PUSH
7078
6.59k
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
7079
6.59k
                m_data[i] = s[i];
7080
6.59k
                SCN_GCC_POP
7081
6.59k
            }
7082
2.51k
            m_size = static_cast<unsigned char>(s.size());
7083
        }
7084
        else if constexpr (sizeof(CharT) == 2) {
7085
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
7086
            m_data[1] =
7087
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
7088
            if (s.size() == 1) {
7089
                return;
7090
            }
7091
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
7092
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
7093
        }
7094
2.11k
        else {
7095
2.11k
            const auto front = static_cast<unsigned>(s.front());
7096
2.11k
            m_data[0] = static_cast<char>(front);
7097
2.11k
            m_data[1] = static_cast<char>(front >> 8);
7098
2.11k
            m_data[2] = static_cast<char>(front >> 16);
7099
2.11k
            m_data[3] = static_cast<char>(front >> 24);
7100
2.11k
        }
7101
4.62k
    }
void scn::v4::detail::fill_type::operator=<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
7072
2.51k
    {
7073
2.51k
        SCN_EXPECT(!s.empty());
7074
2.51k
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
7075
2.51k
        if constexpr (sizeof(CharT) == 1) {
7076
9.10k
            for (size_t i = 0; i < s.size(); ++i) {
7077
6.59k
                SCN_GCC_PUSH
7078
6.59k
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
7079
6.59k
                m_data[i] = s[i];
7080
6.59k
                SCN_GCC_POP
7081
6.59k
            }
7082
2.51k
            m_size = static_cast<unsigned char>(s.size());
7083
        }
7084
        else if constexpr (sizeof(CharT) == 2) {
7085
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
7086
            m_data[1] =
7087
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
7088
            if (s.size() == 1) {
7089
                return;
7090
            }
7091
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
7092
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
7093
        }
7094
        else {
7095
            const auto front = static_cast<unsigned>(s.front());
7096
            m_data[0] = static_cast<char>(front);
7097
            m_data[1] = static_cast<char>(front >> 8);
7098
            m_data[2] = static_cast<char>(front >> 16);
7099
            m_data[3] = static_cast<char>(front >> 24);
7100
        }
7101
2.51k
    }
void scn::v4::detail::fill_type::operator=<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
7072
2.11k
    {
7073
2.11k
        SCN_EXPECT(!s.empty());
7074
2.11k
        SCN_EXPECT(s.size() * sizeof(CharT) <= max_size);
7075
        if constexpr (sizeof(CharT) == 1) {
7076
            for (size_t i = 0; i < s.size(); ++i) {
7077
                SCN_GCC_PUSH
7078
                SCN_GCC_IGNORE("-Wstringop-overflow")  // false positive
7079
                m_data[i] = s[i];
7080
                SCN_GCC_POP
7081
            }
7082
            m_size = static_cast<unsigned char>(s.size());
7083
        }
7084
        else if constexpr (sizeof(CharT) == 2) {
7085
            m_data[0] = static_cast<char>(static_cast<unsigned>(s.front()));
7086
            m_data[1] =
7087
                static_cast<char>(static_cast<unsigned>(s.front()) >> 8);
7088
            if (s.size() == 1) {
7089
                return;
7090
            }
7091
            m_data[2] = static_cast<char>(static_cast<unsigned>(s[1]));
7092
            m_data[3] = static_cast<char>(static_cast<unsigned>(s[1]) >> 8);
7093
        }
7094
2.11k
        else {
7095
2.11k
            const auto front = static_cast<unsigned>(s.front());
7096
2.11k
            m_data[0] = static_cast<char>(front);
7097
2.11k
            m_data[1] = static_cast<char>(front >> 8);
7098
2.11k
            m_data[2] = static_cast<char>(front >> 16);
7099
2.11k
            m_data[3] = static_cast<char>(front >> 24);
7100
2.11k
        }
7101
2.11k
    }
7102
7103
    constexpr size_t size() const
7104
4.89k
    {
7105
4.89k
        return m_size;
7106
4.89k
    }
7107
7108
    template <typename CharT>
7109
    CharT get_code_unit() const
7110
3.22k
    {
7111
3.22k
        SCN_EXPECT(m_size <= sizeof(CharT));
7112
3.22k
        CharT r{};
7113
3.22k
        std::memcpy(&r, m_data, m_size);
7114
3.22k
        return r;
7115
3.22k
    }
char scn::v4::detail::fill_type::get_code_unit<char>() const
Line
Count
Source
7110
1.19k
    {
7111
1.19k
        SCN_EXPECT(m_size <= sizeof(CharT));
7112
1.19k
        CharT r{};
7113
1.19k
        std::memcpy(&r, m_data, m_size);
7114
1.19k
        return r;
7115
1.19k
    }
wchar_t scn::v4::detail::fill_type::get_code_unit<wchar_t>() const
Line
Count
Source
7110
2.03k
    {
7111
2.03k
        SCN_EXPECT(m_size <= sizeof(CharT));
7112
2.03k
        CharT r{};
7113
2.03k
        std::memcpy(&r, m_data, m_size);
7114
2.03k
        return r;
7115
2.03k
    }
7116
7117
    template <typename CharT>
7118
    std::basic_string_view<CharT> get_code_units() const
7119
1.67k
    {
7120
1.67k
        return {reinterpret_cast<const CharT*>(m_data), m_size};
7121
1.67k
    }
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::fill_type::get_code_units<char>() const
Line
Count
Source
7119
1.67k
    {
7120
1.67k
        return {reinterpret_cast<const CharT*>(m_data), m_size};
7121
1.67k
    }
Unexecuted instantiation: std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::fill_type::get_code_units<wchar_t>() const
7122
7123
private:
7124
    static constexpr size_t max_size = 4;
7125
    char m_data[max_size] = {' '};
7126
    unsigned char m_size{1};
7127
};
7128
7129
struct format_specs {
7130
    int width{0}, precision{0};
7131
    fill_type fill{};
7132
    presentation_type type{presentation_type::none};
7133
    std::array<uint8_t, 128 / 8> charset_literals{0};
7134
    bool charset_has_nonascii{false}, charset_is_inverted{false};
7135
    const void* charset_string_data{nullptr};
7136
    size_t charset_string_size{0};
7137
#if !SCN_DISABLE_REGEX
7138
    regex_flags regexp_flags{regex_flags::none};
7139
#endif
7140
    unsigned char arbitrary_base{0};
7141
    align_type align{align_type::none};
7142
    bool localized{false};
7143
7144
    constexpr format_specs() = default;
7145
7146
    SCN_NODISCARD constexpr int get_base() const
7147
10.5k
    {
7148
10.5k
        SCN_GCC_COMPAT_PUSH
7149
10.5k
        SCN_GCC_COMPAT_IGNORE("-Wswitch-enum")
7150
10.5k
        switch (type) {
7151
2.22k
            case presentation_type::none:
7152
2.22k
                return 10;
7153
112
            case presentation_type::int_generic:
7154
112
                return 0;
7155
0
            case presentation_type::int_arbitrary_base:
7156
0
                return arbitrary_base;
7157
7158
88
            case presentation_type::int_binary:
7159
88
                return 2;
7160
86
            case presentation_type::int_octal:
7161
86
                return 8;
7162
40
            case presentation_type::int_decimal:
7163
110
            case presentation_type::int_unsigned_decimal:
7164
110
                return 10;
7165
7.89k
            case presentation_type::int_hex:
7166
7.89k
                return 16;
7167
7168
0
            default:
7169
0
                SCN_EXPECT(false);
7170
10.5k
                SCN_UNREACHABLE;
7171
10.5k
        }
7172
10.5k
        SCN_GCC_COMPAT_POP
7173
10.5k
    }
7174
7175
    template <typename CharT>
7176
    std::basic_string_view<CharT> charset_string() const
7177
4.22k
    {
7178
4.22k
        return {reinterpret_cast<const CharT*>(charset_string_data),
7179
4.22k
                charset_string_size};
7180
4.22k
    }
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::format_specs::charset_string<char>() const
Line
Count
Source
7177
3.49k
    {
7178
3.49k
        return {reinterpret_cast<const CharT*>(charset_string_data),
7179
3.49k
                charset_string_size};
7180
3.49k
    }
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::format_specs::charset_string<wchar_t>() const
Line
Count
Source
7177
732
    {
7178
732
        return {reinterpret_cast<const CharT*>(charset_string_data),
7179
732
                charset_string_size};
7180
732
    }
7181
};
7182
7183
struct specs_setter {
7184
public:
7185
38.9k
    explicit constexpr specs_setter(format_specs& specs) : m_specs(specs) {}
7186
7187
    constexpr void on_align(align_type align)
7188
7.69k
    {
7189
7.69k
        m_specs.align = align;
7190
7.69k
    }
7191
    template <typename CharT>
7192
    constexpr void on_fill(std::basic_string_view<CharT> fill)
7193
4.62k
    {
7194
4.62k
        m_specs.fill = fill;
7195
4.62k
    }
void scn::v4::detail::specs_setter::on_fill<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
7193
2.51k
    {
7194
2.51k
        m_specs.fill = fill;
7195
2.51k
    }
void scn::v4::detail::specs_setter::on_fill<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
7193
2.11k
    {
7194
2.11k
        m_specs.fill = fill;
7195
2.11k
    }
7196
    template <bool Dependent = true>
7197
    constexpr void on_localized()
7198
472
    {
7199
472
        if constexpr (!SCN_DISABLE_LOCALE) {
7200
472
            m_specs.localized = true;
7201
        }
7202
        else {
7203
            on_error("'L' flag invalid when SCN_DISABLE_LOCALE is on");
7204
        }
7205
472
    }
7206
7207
    constexpr void on_width(int width)
7208
7.36k
    {
7209
7.36k
        if (m_specs.precision != 0 && width > m_specs.precision) {
7210
            // clang-format off
7211
0
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
7212
            // clang-format on
7213
0
        }
7214
7215
7.36k
        m_specs.width = width;
7216
7.36k
    }
7217
    constexpr void on_precision(int prec)
7218
14.4k
    {
7219
14.4k
        if (m_specs.width > prec) {
7220
            // clang-format off
7221
140
            return this->on_error("Width (i.e., minimum field length) cannot be larger than precision (i.e., maximum field length)");
7222
            // clang-format on
7223
140
        }
7224
7225
14.3k
        m_specs.precision = prec;
7226
14.3k
    }
7227
7228
    constexpr void on_type(presentation_type type)
7229
44.0k
    {
7230
44.0k
        m_specs.type = type;
7231
44.0k
    }
7232
7233
    constexpr void on_charset_single(char32_t cp)
7234
1.19M
    {
7235
1.19M
        const auto cp_value = static_cast<unsigned>(cp);
7236
1.19M
        if (SCN_LIKELY(cp_value <= 127)) {
7237
991k
            m_specs.charset_literals[cp_value / 8] |=
7238
991k
                static_cast<unsigned char>(1ul << (cp_value % 8));
7239
991k
        }
7240
200k
        else {
7241
200k
            m_specs.charset_has_nonascii = true;
7242
200k
        }
7243
1.19M
    }
7244
7245
    constexpr void on_charset_range(char32_t begin, char32_t end)
7246
11.8k
    {
7247
11.8k
        const auto begin_value = static_cast<unsigned>(begin);
7248
11.8k
        const auto end_value = static_cast<unsigned>(end);
7249
11.8k
        SCN_EXPECT(begin_value < end_value);
7250
7251
11.8k
        if (SCN_LIKELY(end_value <= 127)) {
7252
            // No need to bit-twiddle with a mask, because with the
7253
            // SCN_ASSUME, -O3 will optimize this to a single operation
7254
6.21k
            SCN_ASSUME(begin_value < end_value);
7255
430k
            for (auto v = begin_value; v != end_value; ++v) {
7256
424k
                m_specs.charset_literals[v / 8] |=
7257
424k
                    static_cast<unsigned char>(1ul << (v % 8));
7258
424k
            }
7259
6.21k
        }
7260
5.63k
        else {
7261
5.63k
            m_specs.charset_has_nonascii = true;
7262
5.63k
        }
7263
11.8k
    }
7264
7265
    constexpr void on_charset_inverted()
7266
4.04k
    {
7267
4.04k
        m_specs.charset_is_inverted = true;
7268
4.04k
    }
7269
7270
    template <typename CharT>
7271
    constexpr void on_character_set_string(std::basic_string_view<CharT> fmt)
7272
13.6k
    {
7273
13.6k
        m_specs.charset_string_data = fmt.data();
7274
13.6k
        m_specs.charset_string_size = fmt.size();
7275
13.6k
        on_type(presentation_type::string_set);
7276
13.6k
    }
void scn::v4::detail::specs_setter::on_character_set_string<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
7272
10.2k
    {
7273
10.2k
        m_specs.charset_string_data = fmt.data();
7274
10.2k
        m_specs.charset_string_size = fmt.size();
7275
10.2k
        on_type(presentation_type::string_set);
7276
10.2k
    }
void scn::v4::detail::specs_setter::on_character_set_string<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
7272
3.33k
    {
7273
3.33k
        m_specs.charset_string_data = fmt.data();
7274
3.33k
        m_specs.charset_string_size = fmt.size();
7275
3.33k
        on_type(presentation_type::string_set);
7276
3.33k
    }
7277
7278
#if !SCN_DISABLE_REGEX
7279
    template <typename CharT>
7280
    constexpr void on_regex_pattern(std::basic_string_view<CharT> pattern)
7281
2.21k
    {
7282
2.21k
        m_specs.charset_string_data = pattern.data();
7283
2.21k
        m_specs.charset_string_size = pattern.size();
7284
2.21k
    }
void scn::v4::detail::specs_setter::on_regex_pattern<char>(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
7281
2.21k
    {
7282
2.21k
        m_specs.charset_string_data = pattern.data();
7283
2.21k
        m_specs.charset_string_size = pattern.size();
7284
2.21k
    }
Unexecuted instantiation: void scn::v4::detail::specs_setter::on_regex_pattern<wchar_t>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
7285
    constexpr void on_regex_flags(regex_flags flags)
7286
2.09k
    {
7287
2.09k
        m_specs.regexp_flags = flags;
7288
2.09k
    }
7289
#endif
7290
7291
    // Intentionally not constexpr to get a compiler-time error when called
7292
    /*not-constexpr*/ void on_error(const char* msg)
7293
9.94k
    {
7294
9.94k
        SCN_UNLIKELY_ATTR
7295
9.94k
        m_error = unexpected_scan_error(scan_error::invalid_format_string, msg);
7296
9.94k
    }
7297
    /*not-constexpr*/ void on_error(scan_error err)
7298
0
    {
7299
0
        SCN_UNLIKELY_ATTR
7300
0
        m_error = unexpected(err);
7301
0
    }
7302
7303
    constexpr scan_expected<void> get_error() const
7304
1.25M
    {
7305
1.25M
        return m_error;
7306
1.25M
    }
7307
7308
protected:
7309
    format_specs& m_specs;
7310
    scan_expected<void> m_error;
7311
};
7312
7313
template <typename CharT>
7314
constexpr int parse_simple_int(const CharT*& begin, const CharT* end)
7315
22.5k
{
7316
22.5k
    SCN_EXPECT(begin != end);
7317
22.5k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
7318
7319
22.5k
    unsigned long long value = 0;
7320
41.6k
    do {
7321
41.6k
        value *= 10;
7322
41.6k
        value += static_cast<unsigned long long>(*begin - '0');
7323
41.6k
        if (value >
7324
41.6k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
7325
218
            return -1;
7326
218
        }
7327
41.4k
        ++begin;
7328
41.4k
    } while (begin != end && *begin >= '0' && *begin <= '9');
7329
22.3k
    return static_cast<int>(value);
7330
22.5k
}
int scn::v4::detail::parse_simple_int<char>(char const*&, char const*)
Line
Count
Source
7315
13.5k
{
7316
13.5k
    SCN_EXPECT(begin != end);
7317
13.5k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
7318
7319
13.5k
    unsigned long long value = 0;
7320
28.5k
    do {
7321
28.5k
        value *= 10;
7322
28.5k
        value += static_cast<unsigned long long>(*begin - '0');
7323
28.5k
        if (value >
7324
28.5k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
7325
116
            return -1;
7326
116
        }
7327
28.4k
        ++begin;
7328
28.4k
    } while (begin != end && *begin >= '0' && *begin <= '9');
7329
13.3k
    return static_cast<int>(value);
7330
13.5k
}
int scn::v4::detail::parse_simple_int<wchar_t>(wchar_t const*&, wchar_t const*)
Line
Count
Source
7315
9.04k
{
7316
9.04k
    SCN_EXPECT(begin != end);
7317
9.04k
    SCN_EXPECT(*begin >= '0' && *begin <= '9');
7318
7319
9.04k
    unsigned long long value = 0;
7320
13.1k
    do {
7321
13.1k
        value *= 10;
7322
13.1k
        value += static_cast<unsigned long long>(*begin - '0');
7323
13.1k
        if (value >
7324
13.1k
            static_cast<unsigned long long>(std::numeric_limits<int>::max())) {
7325
102
            return -1;
7326
102
        }
7327
13.0k
        ++begin;
7328
13.0k
    } while (begin != end && *begin >= '0' && *begin <= '9');
7329
8.94k
    return static_cast<int>(value);
7330
9.04k
}
7331
7332
template <typename CharT, typename IDHandler>
7333
constexpr const CharT* do_parse_arg_id(const CharT* begin,
7334
                                       const CharT* end,
7335
                                       IDHandler&& handler)
7336
42.7k
{
7337
42.7k
    SCN_EXPECT(begin != end);
7338
7339
42.7k
    CharT c = *begin;
7340
42.7k
    if (c < CharT{'0'} || c > CharT{'9'}) {
7341
40.4k
        handler.on_error("Invalid argument ID");
7342
40.4k
        return begin;
7343
40.4k
    }
7344
7345
2.26k
    int idx = 0;
7346
2.26k
    if (c != CharT{'0'}) {
7347
590
        idx = parse_simple_int(begin, end);
7348
590
    }
7349
1.67k
    else {
7350
1.67k
        ++begin;
7351
1.67k
    }
7352
7353
2.26k
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
7354
368
        handler.on_error("Invalid argument ID");
7355
368
        return begin;
7356
368
    }
7357
1.89k
    handler(static_cast<std::size_t>(idx));
7358
7359
1.89k
    return begin;
7360
2.26k
}
impl.cpp:char const* scn::v4::detail::do_parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
7336
18.6k
{
7337
18.6k
    SCN_EXPECT(begin != end);
7338
7339
18.6k
    CharT c = *begin;
7340
18.6k
    if (c < CharT{'0'} || c > CharT{'9'}) {
7341
17.9k
        handler.on_error("Invalid argument ID");
7342
17.9k
        return begin;
7343
17.9k
    }
7344
7345
720
    int idx = 0;
7346
720
    if (c != CharT{'0'}) {
7347
306
        idx = parse_simple_int(begin, end);
7348
306
    }
7349
414
    else {
7350
414
        ++begin;
7351
414
    }
7352
7353
720
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
7354
182
        handler.on_error("Invalid argument ID");
7355
182
        return begin;
7356
182
    }
7357
538
    handler(static_cast<std::size_t>(idx));
7358
7359
538
    return begin;
7360
720
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::do_parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&&)
impl.cpp:wchar_t const* scn::v4::detail::do_parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
7336
24.1k
{
7337
24.1k
    SCN_EXPECT(begin != end);
7338
7339
24.1k
    CharT c = *begin;
7340
24.1k
    if (c < CharT{'0'} || c > CharT{'9'}) {
7341
22.5k
        handler.on_error("Invalid argument ID");
7342
22.5k
        return begin;
7343
22.5k
    }
7344
7345
1.54k
    int idx = 0;
7346
1.54k
    if (c != CharT{'0'}) {
7347
284
        idx = parse_simple_int(begin, end);
7348
284
    }
7349
1.25k
    else {
7350
1.25k
        ++begin;
7351
1.25k
    }
7352
7353
1.54k
    if (begin == end || (*begin != CharT{'}'} && *begin != CharT{':'})) {
7354
186
        handler.on_error("Invalid argument ID");
7355
186
        return begin;
7356
186
    }
7357
1.35k
    handler(static_cast<std::size_t>(idx));
7358
7359
1.35k
    return begin;
7360
1.54k
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::do_parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&&)
7361
7362
template <typename CharT, typename IDHandler>
7363
constexpr const CharT* parse_arg_id(const CharT* begin,
7364
                                    const CharT* end,
7365
                                    IDHandler&& handler)
7366
80.2k
{
7367
80.2k
    SCN_EXPECT(begin != end);
7368
80.2k
    if (*begin != '}' && *begin != ':') {
7369
42.7k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7370
42.7k
    }
7371
7372
37.4k
    handler();
7373
37.4k
    return begin;
7374
80.2k
}
impl.cpp:char const* scn::v4::detail::parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&&)
Line
Count
Source
7366
43.4k
{
7367
43.4k
    SCN_EXPECT(begin != end);
7368
43.4k
    if (*begin != '}' && *begin != ':') {
7369
18.6k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7370
18.6k
    }
7371
7372
24.7k
    handler();
7373
24.7k
    return begin;
7374
43.4k
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_arg_id<char, scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter&>(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&&)
impl.cpp:wchar_t const* scn::v4::detail::parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&&)
Line
Count
Source
7366
36.8k
{
7367
36.8k
    SCN_EXPECT(begin != end);
7368
36.8k
    if (*begin != '}' && *begin != ':') {
7369
24.1k
        return do_parse_arg_id(begin, end, SCN_FWD(handler));
7370
24.1k
    }
7371
7372
12.7k
    handler();
7373
12.7k
    return begin;
7374
36.8k
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_arg_id<wchar_t, scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter&>(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&&)
7375
7376
template <typename CharT>
7377
constexpr presentation_type parse_presentation_type(CharT type)
7378
9.98k
{
7379
9.98k
    switch (type) {
7380
392
        case 'b':
7381
496
        case 'B':
7382
496
            return presentation_type::int_binary;
7383
214
        case 'd':
7384
214
            return presentation_type::int_decimal;
7385
482
        case 'i':
7386
482
            return presentation_type::int_generic;
7387
284
        case 'u':
7388
284
            return presentation_type::int_unsigned_decimal;
7389
374
        case 'o':
7390
374
            return presentation_type::int_octal;
7391
240
        case 'x':
7392
344
        case 'X':
7393
344
            return presentation_type::int_hex;
7394
68
        case 'r':
7395
136
        case 'R':
7396
136
            return presentation_type::int_arbitrary_base;
7397
346
        case 'a':
7398
918
        case 'A':
7399
918
            return presentation_type::float_hex;
7400
158
        case 'e':
7401
424
        case 'E':
7402
424
            return presentation_type::float_scientific;
7403
356
        case 'f':
7404
586
        case 'F':
7405
586
            return presentation_type::float_fixed;
7406
184
        case 'g':
7407
318
        case 'G':
7408
318
            return presentation_type::float_general;
7409
3.25k
        case 's':
7410
3.25k
            return presentation_type::string;
7411
896
        case 'c':
7412
896
            return presentation_type::character;
7413
68
        case '?':
7414
68
            return presentation_type::escaped_character;
7415
202
        case 'p':
7416
202
            return presentation_type::pointer;
7417
0
        case '[':
7418
0
        case '/':
7419
            // Should be handled by parse_presentation_set and
7420
            // parse_presentation_regex
7421
0
            SCN_EXPECT(false);
7422
0
            SCN_UNREACHABLE;
7423
992
        default:
7424
992
            return presentation_type::none;
7425
9.98k
    }
7426
9.98k
}
scn::v4::detail::presentation_type scn::v4::detail::parse_presentation_type<char>(char)
Line
Count
Source
7378
5.56k
{
7379
5.56k
    switch (type) {
7380
160
        case 'b':
7381
212
        case 'B':
7382
212
            return presentation_type::int_binary;
7383
108
        case 'd':
7384
108
            return presentation_type::int_decimal;
7385
196
        case 'i':
7386
196
            return presentation_type::int_generic;
7387
88
        case 'u':
7388
88
            return presentation_type::int_unsigned_decimal;
7389
178
        case 'o':
7390
178
            return presentation_type::int_octal;
7391
98
        case 'x':
7392
150
        case 'X':
7393
150
            return presentation_type::int_hex;
7394
34
        case 'r':
7395
68
        case 'R':
7396
68
            return presentation_type::int_arbitrary_base;
7397
124
        case 'a':
7398
230
        case 'A':
7399
230
            return presentation_type::float_hex;
7400
88
        case 'e':
7401
230
        case 'E':
7402
230
            return presentation_type::float_scientific;
7403
214
        case 'f':
7404
320
        case 'F':
7405
320
            return presentation_type::float_fixed;
7406
150
        case 'g':
7407
232
        case 'G':
7408
232
            return presentation_type::float_general;
7409
2.32k
        case 's':
7410
2.32k
            return presentation_type::string;
7411
592
        case 'c':
7412
592
            return presentation_type::character;
7413
34
        case '?':
7414
34
            return presentation_type::escaped_character;
7415
78
        case 'p':
7416
78
            return presentation_type::pointer;
7417
0
        case '[':
7418
0
        case '/':
7419
            // Should be handled by parse_presentation_set and
7420
            // parse_presentation_regex
7421
0
            SCN_EXPECT(false);
7422
0
            SCN_UNREACHABLE;
7423
530
        default:
7424
530
            return presentation_type::none;
7425
5.56k
    }
7426
5.56k
}
scn::v4::detail::presentation_type scn::v4::detail::parse_presentation_type<wchar_t>(wchar_t)
Line
Count
Source
7378
4.42k
{
7379
4.42k
    switch (type) {
7380
232
        case 'b':
7381
284
        case 'B':
7382
284
            return presentation_type::int_binary;
7383
106
        case 'd':
7384
106
            return presentation_type::int_decimal;
7385
286
        case 'i':
7386
286
            return presentation_type::int_generic;
7387
196
        case 'u':
7388
196
            return presentation_type::int_unsigned_decimal;
7389
196
        case 'o':
7390
196
            return presentation_type::int_octal;
7391
142
        case 'x':
7392
194
        case 'X':
7393
194
            return presentation_type::int_hex;
7394
34
        case 'r':
7395
68
        case 'R':
7396
68
            return presentation_type::int_arbitrary_base;
7397
222
        case 'a':
7398
688
        case 'A':
7399
688
            return presentation_type::float_hex;
7400
70
        case 'e':
7401
194
        case 'E':
7402
194
            return presentation_type::float_scientific;
7403
142
        case 'f':
7404
266
        case 'F':
7405
266
            return presentation_type::float_fixed;
7406
34
        case 'g':
7407
86
        case 'G':
7408
86
            return presentation_type::float_general;
7409
934
        case 's':
7410
934
            return presentation_type::string;
7411
304
        case 'c':
7412
304
            return presentation_type::character;
7413
34
        case '?':
7414
34
            return presentation_type::escaped_character;
7415
124
        case 'p':
7416
124
            return presentation_type::pointer;
7417
0
        case '[':
7418
0
        case '/':
7419
            // Should be handled by parse_presentation_set and
7420
            // parse_presentation_regex
7421
0
            SCN_EXPECT(false);
7422
0
            SCN_UNREACHABLE;
7423
462
        default:
7424
462
            return presentation_type::none;
7425
4.42k
    }
7426
4.42k
}
7427
7428
template <typename CharT>
7429
constexpr bool is_ascii_letter(CharT ch)
7430
5.16k
{
7431
5.16k
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
7432
5.16k
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
7433
5.16k
}
bool scn::v4::detail::is_ascii_letter<char>(char)
Line
Count
Source
7430
2.43k
{
7431
2.43k
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
7432
2.43k
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
7433
2.43k
}
bool scn::v4::detail::is_ascii_letter<wchar_t>(wchar_t)
Line
Count
Source
7430
2.73k
{
7431
2.73k
    return (ch >= CharT{'a'} && ch <= CharT{'z'}) ||
7432
2.73k
           (ch >= CharT{'A'} && ch <= CharT{'Z'});
7433
2.73k
}
7434
7435
template <typename CharT>
7436
constexpr int code_point_length(const CharT* begin, const CharT* end)
7437
37.5k
{
7438
37.5k
    SCN_EXPECT(begin != end);
7439
37.5k
    if constexpr (sizeof(CharT) != 1) {
7440
13.3k
        return 1;
7441
    }
7442
24.1k
    else {
7443
24.1k
        const auto lengths =
7444
24.1k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
7445
24.1k
            "\3\4";
7446
24.1k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
7447
24.1k
        return len;
7448
24.1k
    }
7449
37.5k
}
int scn::v4::detail::code_point_length<char>(char const*, char const*)
Line
Count
Source
7437
24.1k
{
7438
24.1k
    SCN_EXPECT(begin != end);
7439
    if constexpr (sizeof(CharT) != 1) {
7440
        return 1;
7441
    }
7442
24.1k
    else {
7443
24.1k
        const auto lengths =
7444
24.1k
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
7445
24.1k
            "\3\4";
7446
24.1k
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
7447
24.1k
        return len;
7448
24.1k
    }
7449
24.1k
}
int scn::v4::detail::code_point_length<wchar_t>(wchar_t const*, wchar_t const*)
Line
Count
Source
7437
13.3k
{
7438
13.3k
    SCN_EXPECT(begin != end);
7439
13.3k
    if constexpr (sizeof(CharT) != 1) {
7440
13.3k
        return 1;
7441
    }
7442
    else {
7443
        const auto lengths =
7444
            "\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\0\0\0\0\0\0\0\0\2\2\2\2\3"
7445
            "\3\4";
7446
        const int len = lengths[static_cast<unsigned char>(*begin) >> 3];
7447
        return len;
7448
    }
7449
13.3k
}
7450
7451
template <typename CharT, typename Handler>
7452
constexpr const CharT* parse_align(const CharT* begin,
7453
                                   const CharT* end,
7454
                                   Handler&& handler)
7455
37.5k
{
7456
37.5k
    SCN_EXPECT(begin != end);
7457
7458
72.6k
    auto check_align = [](wchar_t ch) {
7459
72.6k
        switch (ch) {
7460
1.90k
            case L'<':
7461
1.90k
                return align_type::left;
7462
1.36k
            case L'>':
7463
1.36k
                return align_type::right;
7464
5.89k
            case L'^':
7465
5.89k
                return align_type::center;
7466
63.5k
            default:
7467
63.5k
                return align_type::none;
7468
72.6k
        }
7469
72.6k
    };
impl.cpp:scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7458
47.1k
    auto check_align = [](wchar_t ch) {
7459
47.1k
        switch (ch) {
7460
1.41k
            case L'<':
7461
1.41k
                return align_type::left;
7462
958
            case L'>':
7463
958
                return align_type::right;
7464
3.23k
            case L'^':
7465
3.23k
                return align_type::center;
7466
41.5k
            default:
7467
41.5k
                return align_type::none;
7468
47.1k
        }
7469
47.1k
    };
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
impl.cpp:scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
Line
Count
Source
7458
25.5k
    auto check_align = [](wchar_t ch) {
7459
25.5k
        switch (ch) {
7460
488
            case L'<':
7461
488
                return align_type::left;
7462
410
            case L'>':
7463
410
                return align_type::right;
7464
2.65k
            case L'^':
7465
2.65k
                return align_type::center;
7466
21.9k
            default:
7467
21.9k
                return align_type::none;
7468
25.5k
        }
7469
25.5k
    };
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)::{lambda(wchar_t)#1}::operator()(wchar_t) const
7470
7471
37.5k
    auto potential_fill_len = code_point_length(begin, end);
7472
37.5k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7473
37.5k
                     std::distance(begin, end) < potential_fill_len)) {
7474
60
        handler.on_error("Invalid encoding in fill character");
7475
60
        return begin;
7476
60
    }
7477
7478
37.4k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7479
7480
37.4k
    auto potential_fill = std::basic_string_view<CharT>{
7481
37.4k
        begin, static_cast<size_t>(potential_fill_len)};
7482
37.4k
    const auto begin_before_fill = begin;
7483
37.4k
    begin += potential_fill_len;
7484
7485
37.4k
    if (begin == end) {
7486
2.21k
        return begin_before_fill;
7487
2.21k
    }
7488
7489
35.2k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7490
35.2k
    const auto begin_after_fill = begin;
7491
35.2k
    ++begin;
7492
7493
35.2k
    if (potential_fill_len == 1) {
7494
32.9k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7495
102
            handler.on_error("Invalid fill character '{' in format string");
7496
102
            return begin;
7497
102
        }
7498
32.8k
        if (potential_fill[0] == '[') {
7499
9.53k
            return begin_before_fill;
7500
9.53k
        }
7501
32.8k
    }
7502
7503
25.6k
    if (potential_align_after_fill == align_type::none) {
7504
20.9k
        if (potential_align_on_fill != align_type::none) {
7505
3.07k
            handler.on_align(potential_align_on_fill);
7506
3.07k
            return begin_after_fill;
7507
3.07k
        }
7508
17.9k
        return begin_before_fill;
7509
20.9k
    }
7510
7511
4.62k
    handler.on_fill(potential_fill);
7512
4.62k
    handler.on_align(potential_align_after_fill);
7513
4.62k
    return begin;
7514
25.6k
}
impl.cpp:char const* scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7455
24.1k
{
7456
24.1k
    SCN_EXPECT(begin != end);
7457
7458
24.1k
    auto check_align = [](wchar_t ch) {
7459
24.1k
        switch (ch) {
7460
24.1k
            case L'<':
7461
24.1k
                return align_type::left;
7462
24.1k
            case L'>':
7463
24.1k
                return align_type::right;
7464
24.1k
            case L'^':
7465
24.1k
                return align_type::center;
7466
24.1k
            default:
7467
24.1k
                return align_type::none;
7468
24.1k
        }
7469
24.1k
    };
7470
7471
24.1k
    auto potential_fill_len = code_point_length(begin, end);
7472
24.1k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7473
24.1k
                     std::distance(begin, end) < potential_fill_len)) {
7474
60
        handler.on_error("Invalid encoding in fill character");
7475
60
        return begin;
7476
60
    }
7477
7478
24.1k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7479
7480
24.1k
    auto potential_fill = std::basic_string_view<CharT>{
7481
24.1k
        begin, static_cast<size_t>(potential_fill_len)};
7482
24.1k
    const auto begin_before_fill = begin;
7483
24.1k
    begin += potential_fill_len;
7484
7485
24.1k
    if (begin == end) {
7486
1.03k
        return begin_before_fill;
7487
1.03k
    }
7488
7489
23.0k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7490
23.0k
    const auto begin_after_fill = begin;
7491
23.0k
    ++begin;
7492
7493
23.0k
    if (potential_fill_len == 1) {
7494
20.7k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7495
60
            handler.on_error("Invalid fill character '{' in format string");
7496
60
            return begin;
7497
60
        }
7498
20.6k
        if (potential_fill[0] == '[') {
7499
7.89k
            return begin_before_fill;
7500
7.89k
        }
7501
20.6k
    }
7502
7503
15.1k
    if (potential_align_after_fill == align_type::none) {
7504
12.5k
        if (potential_align_on_fill != align_type::none) {
7505
2.11k
            handler.on_align(potential_align_on_fill);
7506
2.11k
            return begin_after_fill;
7507
2.11k
        }
7508
10.4k
        return begin_before_fill;
7509
12.5k
    }
7510
7511
2.51k
    handler.on_fill(potential_fill);
7512
2.51k
    handler.on_align(potential_align_after_fill);
7513
2.51k
    return begin;
7514
15.1k
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_align<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
impl.cpp:wchar_t const* scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7455
13.3k
{
7456
13.3k
    SCN_EXPECT(begin != end);
7457
7458
13.3k
    auto check_align = [](wchar_t ch) {
7459
13.3k
        switch (ch) {
7460
13.3k
            case L'<':
7461
13.3k
                return align_type::left;
7462
13.3k
            case L'>':
7463
13.3k
                return align_type::right;
7464
13.3k
            case L'^':
7465
13.3k
                return align_type::center;
7466
13.3k
            default:
7467
13.3k
                return align_type::none;
7468
13.3k
        }
7469
13.3k
    };
7470
7471
13.3k
    auto potential_fill_len = code_point_length(begin, end);
7472
13.3k
    if (SCN_UNLIKELY(potential_fill_len == 0 ||
7473
13.3k
                     std::distance(begin, end) < potential_fill_len)) {
7474
0
        handler.on_error("Invalid encoding in fill character");
7475
0
        return begin;
7476
0
    }
7477
7478
13.3k
    auto potential_align_on_fill = check_align(static_cast<wchar_t>(*begin));
7479
7480
13.3k
    auto potential_fill = std::basic_string_view<CharT>{
7481
13.3k
        begin, static_cast<size_t>(potential_fill_len)};
7482
13.3k
    const auto begin_before_fill = begin;
7483
13.3k
    begin += potential_fill_len;
7484
7485
13.3k
    if (begin == end) {
7486
1.17k
        return begin_before_fill;
7487
1.17k
    }
7488
7489
12.1k
    auto potential_align_after_fill = check_align(static_cast<wchar_t>(*begin));
7490
12.1k
    const auto begin_after_fill = begin;
7491
12.1k
    ++begin;
7492
7493
12.1k
    if (potential_fill_len == 1) {
7494
12.1k
        if (SCN_UNLIKELY(potential_fill[0] == '{')) {
7495
42
            handler.on_error("Invalid fill character '{' in format string");
7496
42
            return begin;
7497
42
        }
7498
12.1k
        if (potential_fill[0] == '[') {
7499
1.63k
            return begin_before_fill;
7500
1.63k
        }
7501
12.1k
    }
7502
7503
10.4k
    if (potential_align_after_fill == align_type::none) {
7504
8.37k
        if (potential_align_on_fill != align_type::none) {
7505
956
            handler.on_align(potential_align_on_fill);
7506
956
            return begin_after_fill;
7507
956
        }
7508
7.42k
        return begin_before_fill;
7509
8.37k
    }
7510
7511
2.11k
    handler.on_fill(potential_fill);
7512
2.11k
    handler.on_align(potential_align_after_fill);
7513
2.11k
    return begin;
7514
10.4k
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_align<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7515
7516
template <typename CharT, typename Handler>
7517
constexpr const CharT* parse_width(const CharT* begin,
7518
                                   const CharT* end,
7519
                                   Handler&& handler)
7520
37.2k
{
7521
37.2k
    SCN_EXPECT(begin != end);
7522
7523
37.2k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7524
7.43k
        int width = parse_simple_int(begin, end);
7525
7.43k
        if (SCN_LIKELY(width != -1)) {
7526
7.36k
            handler.on_width(width);
7527
7.36k
        }
7528
68
        else {
7529
68
            handler.on_error("Invalid field width");
7530
68
            return begin;
7531
68
        }
7532
7.43k
    }
7533
37.1k
    return begin;
7534
37.2k
}
impl.cpp:char const* scn::v4::detail::parse_width<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7520
24.0k
{
7521
24.0k
    SCN_EXPECT(begin != end);
7522
7523
24.0k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7524
3.75k
        int width = parse_simple_int(begin, end);
7525
3.75k
        if (SCN_LIKELY(width != -1)) {
7526
3.71k
            handler.on_width(width);
7527
3.71k
        }
7528
34
        else {
7529
34
            handler.on_error("Invalid field width");
7530
34
            return begin;
7531
34
        }
7532
3.75k
    }
7533
24.0k
    return begin;
7534
24.0k
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_width<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
impl.cpp:wchar_t const* scn::v4::detail::parse_width<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7520
13.2k
{
7521
13.2k
    SCN_EXPECT(begin != end);
7522
7523
13.2k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7524
3.68k
        int width = parse_simple_int(begin, end);
7525
3.68k
        if (SCN_LIKELY(width != -1)) {
7526
3.64k
            handler.on_width(width);
7527
3.64k
        }
7528
34
        else {
7529
34
            handler.on_error("Invalid field width");
7530
34
            return begin;
7531
34
        }
7532
3.68k
    }
7533
13.1k
    return begin;
7534
13.2k
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_width<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7535
7536
template <typename CharT, typename Handler>
7537
constexpr const CharT* parse_precision(const CharT* begin,
7538
                                       const CharT* end,
7539
                                       Handler&& handler)
7540
14.7k
{
7541
14.7k
    SCN_EXPECT(begin != end);
7542
7543
14.7k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7544
14.5k
        int prec = parse_simple_int(begin, end);
7545
14.5k
        if (SCN_LIKELY(prec != -1)) {
7546
14.4k
            handler.on_precision(prec);
7547
14.4k
        }
7548
82
        else {
7549
82
            handler.on_error("Invalid field precision");
7550
82
            return begin;
7551
82
        }
7552
14.5k
    }
7553
14.6k
    return begin;
7554
14.7k
}
impl.cpp:char const* scn::v4::detail::parse_precision<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7540
9.54k
{
7541
9.54k
    SCN_EXPECT(begin != end);
7542
7543
9.54k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7544
9.44k
        int prec = parse_simple_int(begin, end);
7545
9.44k
        if (SCN_LIKELY(prec != -1)) {
7546
9.39k
            handler.on_precision(prec);
7547
9.39k
        }
7548
48
        else {
7549
48
            handler.on_error("Invalid field precision");
7550
48
            return begin;
7551
48
        }
7552
9.44k
    }
7553
9.49k
    return begin;
7554
9.54k
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_precision<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
impl.cpp:wchar_t const* scn::v4::detail::parse_precision<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7540
5.18k
{
7541
5.18k
    SCN_EXPECT(begin != end);
7542
7543
5.18k
    if (*begin >= CharT{'0'} && *begin <= CharT{'9'}) {
7544
5.08k
        int prec = parse_simple_int(begin, end);
7545
5.08k
        if (SCN_LIKELY(prec != -1)) {
7546
5.04k
            handler.on_precision(prec);
7547
5.04k
        }
7548
34
        else {
7549
34
            handler.on_error("Invalid field precision");
7550
34
            return begin;
7551
34
        }
7552
5.08k
    }
7553
5.15k
    return begin;
7554
5.18k
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_precision<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7555
7556
template <typename CharT, typename SpecHandler>
7557
constexpr char32_t parse_presentation_set_code_point(const CharT*& begin,
7558
                                                     const CharT* end,
7559
                                                     SpecHandler&& handler)
7560
1.61M
{
7561
1.61M
    SCN_EXPECT(begin != end);
7562
7563
1.61M
    auto len = code_point_length_by_starting_code_unit(*begin);
7564
1.61M
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7565
96
        handler.on_error("Invalid encoding in format string");
7566
96
        return invalid_code_point;
7567
96
    }
7568
7569
1.61M
    const auto cp =
7570
1.61M
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7571
1.61M
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7572
222
        handler.on_error("Invalid encoding in format string");
7573
222
        return invalid_code_point;
7574
222
    }
7575
7576
1.61M
    begin += len;
7577
1.61M
    return cp;
7578
1.61M
}
char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Line
Count
Source
7560
394k
{
7561
394k
    SCN_EXPECT(begin != end);
7562
7563
394k
    auto len = code_point_length_by_starting_code_unit(*begin);
7564
394k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7565
0
        handler.on_error("Invalid encoding in format string");
7566
0
        return invalid_code_point;
7567
0
    }
7568
7569
394k
    const auto cp =
7570
394k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7571
394k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7572
0
        handler.on_error("Invalid encoding in format string");
7573
0
        return invalid_code_point;
7574
0
    }
7575
7576
394k
    begin += len;
7577
394k
    return cp;
7578
394k
}
char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
Line
Count
Source
7560
7.00k
{
7561
7.00k
    SCN_EXPECT(begin != end);
7562
7563
7.00k
    auto len = code_point_length_by_starting_code_unit(*begin);
7564
7.00k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7565
0
        handler.on_error("Invalid encoding in format string");
7566
0
        return invalid_code_point;
7567
0
    }
7568
7569
7.00k
    const auto cp =
7570
7.00k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7571
7.00k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7572
0
        handler.on_error("Invalid encoding in format string");
7573
0
        return invalid_code_point;
7574
0
    }
7575
7576
7.00k
    begin += len;
7577
7.00k
    return cp;
7578
7.00k
}
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7560
1.18M
{
7561
1.18M
    SCN_EXPECT(begin != end);
7562
7563
1.18M
    auto len = code_point_length_by_starting_code_unit(*begin);
7564
1.18M
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7565
96
        handler.on_error("Invalid encoding in format string");
7566
96
        return invalid_code_point;
7567
96
    }
7568
7569
1.18M
    const auto cp =
7570
1.18M
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7571
1.18M
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7572
68
        handler.on_error("Invalid encoding in format string");
7573
68
        return invalid_code_point;
7574
68
    }
7575
7576
1.18M
    begin += len;
7577
1.18M
    return cp;
7578
1.18M
}
Unexecuted instantiation: impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7560
26.8k
{
7561
26.8k
    SCN_EXPECT(begin != end);
7562
7563
26.8k
    auto len = code_point_length_by_starting_code_unit(*begin);
7564
26.8k
    if (SCN_UNLIKELY(len == 0 || static_cast<size_t>(end - begin) < len)) {
7565
0
        handler.on_error("Invalid encoding in format string");
7566
0
        return invalid_code_point;
7567
0
    }
7568
7569
26.8k
    const auto cp =
7570
26.8k
        decode_code_point_exhaustive(std::basic_string_view<CharT>{begin, len});
7571
26.8k
    if (SCN_UNLIKELY(cp >= invalid_code_point)) {
7572
154
        handler.on_error("Invalid encoding in format string");
7573
154
        return invalid_code_point;
7574
154
    }
7575
7576
26.7k
    begin += len;
7577
26.7k
    return cp;
7578
26.8k
}
Unexecuted instantiation: impl.cpp:char32_t scn::v4::detail::parse_presentation_set_code_point<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7579
7580
template <typename CharT, typename SpecHandler>
7581
constexpr void parse_presentation_set_literal(const CharT*& begin,
7582
                                              const CharT* end,
7583
                                              SpecHandler&& handler)
7584
1.60M
{
7585
1.60M
    SCN_EXPECT(begin != end);
7586
7587
1.60M
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7588
1.60M
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7589
214
        return;
7590
214
    }
7591
7592
1.60M
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7593
1.60M
        *(begin + 1) != CharT{']'}) {
7594
15.3k
        ++begin;
7595
7596
15.3k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7597
15.3k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7598
104
            return;
7599
104
        }
7600
7601
15.2k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7602
            // clang-format off
7603
68
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7604
            // clang-format on
7605
68
            return;
7606
68
        }
7607
7608
15.1k
        handler.on_charset_range(cp_first, cp_second + 1);
7609
15.1k
        return;
7610
15.2k
    }
7611
7612
1.58M
    handler.on_charset_single(cp_first);
7613
1.58M
}
void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Line
Count
Source
7584
391k
{
7585
391k
    SCN_EXPECT(begin != end);
7586
7587
391k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7588
391k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7589
0
        return;
7590
0
    }
7591
7592
391k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7593
391k
        *(begin + 1) != CharT{']'}) {
7594
2.77k
        ++begin;
7595
7596
2.77k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7597
2.77k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7598
0
            return;
7599
0
        }
7600
7601
2.77k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7602
            // clang-format off
7603
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7604
            // clang-format on
7605
0
            return;
7606
0
        }
7607
7608
2.77k
        handler.on_charset_range(cp_first, cp_second + 1);
7609
2.77k
        return;
7610
2.77k
    }
7611
7612
388k
    handler.on_charset_single(cp_first);
7613
388k
}
void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
Line
Count
Source
7584
6.43k
{
7585
6.43k
    SCN_EXPECT(begin != end);
7586
7587
6.43k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7588
6.43k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7589
0
        return;
7590
0
    }
7591
7592
6.43k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7593
6.43k
        *(begin + 1) != CharT{']'}) {
7594
570
        ++begin;
7595
7596
570
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7597
570
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7598
0
            return;
7599
0
        }
7600
7601
570
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7602
            // clang-format off
7603
0
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7604
            // clang-format on
7605
0
            return;
7606
0
        }
7607
7608
570
        handler.on_charset_range(cp_first, cp_second + 1);
7609
570
        return;
7610
570
    }
7611
7612
5.86k
    handler.on_charset_single(cp_first);
7613
5.86k
}
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7584
1.17M
{
7585
1.17M
    SCN_EXPECT(begin != end);
7586
7587
1.17M
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7588
1.17M
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7589
94
        return;
7590
94
    }
7591
7592
1.17M
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7593
1.17M
        *(begin + 1) != CharT{']'}) {
7594
9.57k
        ++begin;
7595
7596
9.57k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7597
9.57k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7598
70
            return;
7599
70
        }
7600
7601
9.50k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7602
            // clang-format off
7603
34
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7604
            // clang-format on
7605
34
            return;
7606
34
        }
7607
7608
9.47k
        handler.on_charset_range(cp_first, cp_second + 1);
7609
9.47k
        return;
7610
9.50k
    }
7611
7612
1.16M
    handler.on_charset_single(cp_first);
7613
1.16M
}
Unexecuted instantiation: impl.cpp:void scn::v4::detail::parse_presentation_set_literal<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
impl.cpp:void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7584
24.4k
{
7585
24.4k
    SCN_EXPECT(begin != end);
7586
7587
24.4k
    auto cp_first = parse_presentation_set_code_point(begin, end, handler);
7588
24.4k
    if (SCN_UNLIKELY(cp_first >= invalid_code_point)) {
7589
120
        return;
7590
120
    }
7591
7592
24.3k
    if (begin != end && *begin == CharT{'-'} && (begin + 1) != end &&
7593
24.3k
        *(begin + 1) != CharT{']'}) {
7594
2.44k
        ++begin;
7595
7596
2.44k
        auto cp_second = parse_presentation_set_code_point(begin, end, handler);
7597
2.44k
        if (SCN_UNLIKELY(cp_second >= invalid_code_point)) {
7598
34
            return;
7599
34
        }
7600
7601
2.40k
        if (SCN_UNLIKELY(cp_second < cp_first)) {
7602
            // clang-format off
7603
34
            handler.on_error("Invalid range in [character set] format string argument: Range end before the beginning");
7604
            // clang-format on
7605
34
            return;
7606
34
        }
7607
7608
2.37k
        handler.on_charset_range(cp_first, cp_second + 1);
7609
2.37k
        return;
7610
2.40k
    }
7611
7612
21.8k
    handler.on_charset_single(cp_first);
7613
21.8k
}
Unexecuted instantiation: impl.cpp:void scn::v4::detail::parse_presentation_set_literal<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7614
7615
template <typename CharT, typename SpecHandler>
7616
constexpr std::basic_string_view<CharT> parse_presentation_set(
7617
    const CharT*& begin,
7618
    const CharT* end,
7619
    SpecHandler&& handler)
7620
18.5k
{
7621
18.5k
    SCN_EXPECT(begin != end);
7622
18.5k
    SCN_EXPECT(*begin == CharT{'['});
7623
7624
18.5k
    auto start = begin;
7625
18.5k
    ++begin;
7626
7627
18.5k
    if (SCN_UNLIKELY(begin == end)) {
7628
        // clang-format off
7629
76
        handler.on_error("Unexpected end of [character set] specifier in format string");
7630
        // clang-format on
7631
76
        return {};
7632
76
    }
7633
18.4k
    if (*begin == CharT{'^'}) {
7634
4.88k
        handler.on_charset_inverted();
7635
4.88k
        ++begin;
7636
4.88k
        if (SCN_UNLIKELY(begin == end)) {
7637
            // clang-format off
7638
68
            handler.on_error("Unexpected end of [character set] specifier in format string");
7639
            // clang-format on
7640
68
            return {};
7641
68
        }
7642
4.81k
        if (*begin == CharT{']'}) {
7643
116
            handler.on_charset_single(char32_t{']'});
7644
116
            ++begin;
7645
116
        }
7646
4.81k
    }
7647
13.5k
    else if (*begin == CharT{']'}) {
7648
68
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7649
68
    }
7650
7651
1.62M
    while (begin != end) {
7652
1.61M
        if (SCN_UNLIKELY(!handler.get_error())) {
7653
372
            break;
7654
372
        }
7655
7656
1.61M
        if (*begin == CharT{']'}) {
7657
17.1k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7658
17.1k
        }
7659
7660
1.60M
        parse_presentation_set_literal(begin, end, handler);
7661
1.60M
    }
7662
7663
1.18k
    SCN_UNLIKELY_ATTR
7664
1.18k
    handler.on_error("Invalid [character set] specifier in format string");
7665
1.18k
    return {};
7666
18.3k
}
std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::impl::nonascii_specs_handler&>(char const*&, char const*, scn::v4::impl::nonascii_specs_handler&)
Line
Count
Source
7620
2.82k
{
7621
2.82k
    SCN_EXPECT(begin != end);
7622
2.82k
    SCN_EXPECT(*begin == CharT{'['});
7623
7624
2.82k
    auto start = begin;
7625
2.82k
    ++begin;
7626
7627
2.82k
    if (SCN_UNLIKELY(begin == end)) {
7628
        // clang-format off
7629
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7630
        // clang-format on
7631
0
        return {};
7632
0
    }
7633
2.82k
    if (*begin == CharT{'^'}) {
7634
438
        handler.on_charset_inverted();
7635
438
        ++begin;
7636
438
        if (SCN_UNLIKELY(begin == end)) {
7637
            // clang-format off
7638
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7639
            // clang-format on
7640
0
            return {};
7641
0
        }
7642
438
        if (*begin == CharT{']'}) {
7643
6
            handler.on_charset_single(char32_t{']'});
7644
6
            ++begin;
7645
6
        }
7646
438
    }
7647
2.38k
    else if (*begin == CharT{']'}) {
7648
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7649
0
    }
7650
7651
394k
    while (begin != end) {
7652
394k
        if (SCN_UNLIKELY(!handler.get_error())) {
7653
0
            break;
7654
0
        }
7655
7656
394k
        if (*begin == CharT{']'}) {
7657
2.82k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7658
2.82k
        }
7659
7660
391k
        parse_presentation_set_literal(begin, end, handler);
7661
391k
    }
7662
7663
0
    SCN_UNLIKELY_ATTR
7664
0
    handler.on_error("Invalid [character set] specifier in format string");
7665
0
    return {};
7666
2.82k
}
std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::impl::nonascii_specs_handler&>(wchar_t const*&, wchar_t const*, scn::v4::impl::nonascii_specs_handler&)
Line
Count
Source
7620
732
{
7621
732
    SCN_EXPECT(begin != end);
7622
732
    SCN_EXPECT(*begin == CharT{'['});
7623
7624
732
    auto start = begin;
7625
732
    ++begin;
7626
7627
732
    if (SCN_UNLIKELY(begin == end)) {
7628
        // clang-format off
7629
0
        handler.on_error("Unexpected end of [character set] specifier in format string");
7630
        // clang-format on
7631
0
        return {};
7632
0
    }
7633
732
    if (*begin == CharT{'^'}) {
7634
402
        handler.on_charset_inverted();
7635
402
        ++begin;
7636
402
        if (SCN_UNLIKELY(begin == end)) {
7637
            // clang-format off
7638
0
            handler.on_error("Unexpected end of [character set] specifier in format string");
7639
            // clang-format on
7640
0
            return {};
7641
0
        }
7642
402
        if (*begin == CharT{']'}) {
7643
6
            handler.on_charset_single(char32_t{']'});
7644
6
            ++begin;
7645
6
        }
7646
402
    }
7647
330
    else if (*begin == CharT{']'}) {
7648
0
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7649
0
    }
7650
7651
7.17k
    while (begin != end) {
7652
7.17k
        if (SCN_UNLIKELY(!handler.get_error())) {
7653
0
            break;
7654
0
        }
7655
7656
7.17k
        if (*begin == CharT{']'}) {
7657
732
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7658
732
        }
7659
7660
6.43k
        parse_presentation_set_literal(begin, end, handler);
7661
6.43k
    }
7662
7663
0
    SCN_UNLIKELY_ATTR
7664
0
    handler.on_error("Invalid [character set] specifier in format string");
7665
0
    return {};
7666
732
}
impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7620
11.0k
{
7621
11.0k
    SCN_EXPECT(begin != end);
7622
11.0k
    SCN_EXPECT(*begin == CharT{'['});
7623
7624
11.0k
    auto start = begin;
7625
11.0k
    ++begin;
7626
7627
11.0k
    if (SCN_UNLIKELY(begin == end)) {
7628
        // clang-format off
7629
42
        handler.on_error("Unexpected end of [character set] specifier in format string");
7630
        // clang-format on
7631
42
        return {};
7632
42
    }
7633
11.0k
    if (*begin == CharT{'^'}) {
7634
2.21k
        handler.on_charset_inverted();
7635
2.21k
        ++begin;
7636
2.21k
        if (SCN_UNLIKELY(begin == end)) {
7637
            // clang-format off
7638
34
            handler.on_error("Unexpected end of [character set] specifier in format string");
7639
            // clang-format on
7640
34
            return {};
7641
34
        }
7642
2.17k
        if (*begin == CharT{']'}) {
7643
52
            handler.on_charset_single(char32_t{']'});
7644
52
            ++begin;
7645
52
        }
7646
2.17k
    }
7647
8.82k
    else if (*begin == CharT{']'}) {
7648
34
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7649
34
    }
7650
7651
1.19M
    while (begin != end) {
7652
1.19M
        if (SCN_UNLIKELY(!handler.get_error())) {
7653
216
            break;
7654
216
        }
7655
7656
1.18M
        if (*begin == CharT{']'}) {
7657
10.2k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7658
10.2k
        }
7659
7660
1.17M
        parse_presentation_set_literal(begin, end, handler);
7661
1.17M
    }
7662
7663
700
    SCN_UNLIKELY_ATTR
7664
700
    handler.on_error("Invalid [character set] specifier in format string");
7665
700
    return {};
7666
10.9k
}
Unexecuted instantiation: impl.cpp:std::__1::basic_string_view<char, std::__1::char_traits<char> > scn::v4::detail::parse_presentation_set<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7620
3.92k
{
7621
3.92k
    SCN_EXPECT(begin != end);
7622
3.92k
    SCN_EXPECT(*begin == CharT{'['});
7623
7624
3.92k
    auto start = begin;
7625
3.92k
    ++begin;
7626
7627
3.92k
    if (SCN_UNLIKELY(begin == end)) {
7628
        // clang-format off
7629
34
        handler.on_error("Unexpected end of [character set] specifier in format string");
7630
        // clang-format on
7631
34
        return {};
7632
34
    }
7633
3.88k
    if (*begin == CharT{'^'}) {
7634
1.83k
        handler.on_charset_inverted();
7635
1.83k
        ++begin;
7636
1.83k
        if (SCN_UNLIKELY(begin == end)) {
7637
            // clang-format off
7638
34
            handler.on_error("Unexpected end of [character set] specifier in format string");
7639
            // clang-format on
7640
34
            return {};
7641
34
        }
7642
1.79k
        if (*begin == CharT{']'}) {
7643
52
            handler.on_charset_single(char32_t{']'});
7644
52
            ++begin;
7645
52
        }
7646
1.79k
    }
7647
2.05k
    else if (*begin == CharT{']'}) {
7648
34
        return {start, static_cast<size_t>(std::distance(start, ++begin))};
7649
34
    }
7650
7651
28.2k
    while (begin != end) {
7652
27.9k
        if (SCN_UNLIKELY(!handler.get_error())) {
7653
156
            break;
7654
156
        }
7655
7656
27.7k
        if (*begin == CharT{']'}) {
7657
3.33k
            return {start, static_cast<size_t>(std::distance(start, ++begin))};
7658
3.33k
        }
7659
7660
24.4k
        parse_presentation_set_literal(begin, end, handler);
7661
24.4k
    }
7662
7663
482
    SCN_UNLIKELY_ATTR
7664
482
    handler.on_error("Invalid [character set] specifier in format string");
7665
482
    return {};
7666
3.81k
}
Unexecuted instantiation: impl.cpp:std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > scn::v4::detail::parse_presentation_set<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7667
7668
template <typename CharT, typename SpecHandler>
7669
constexpr const CharT* parse_presentation_regex(const CharT*& begin,
7670
                                                const CharT* end,
7671
                                                SpecHandler&& handler)
7672
2.49k
{
7673
2.49k
#if !SCN_DISABLE_REGEX
7674
2.49k
    SCN_EXPECT(begin != end);
7675
2.49k
    SCN_EXPECT(*begin == CharT{'/'});
7676
7677
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
7678
42
                  std::is_same_v<CharT, wchar_t>) {
7679
42
        handler.on_error("Regex backend doesn't support wide strings as input");
7680
42
        return begin;
7681
42
    }
7682
7683
0
    auto start = begin;
7684
2.49k
    ++begin;
7685
7686
2.49k
    if (SCN_UNLIKELY(begin == end)) {
7687
34
        handler.on_error("Unexpected end of regex in format string");
7688
34
        return begin;
7689
34
    }
7690
7691
2.46k
    handler.on_type(presentation_type::regex);
7692
281k
    for (; begin != end; ++begin) {
7693
281k
        if (*begin == CharT{'/'}) {
7694
21.3k
            if (*(begin - 1) != CharT{'\\'}) {
7695
2.24k
                break;
7696
2.24k
            }
7697
19.0k
            else {
7698
19.0k
                handler.on_type(presentation_type::regex_escaped);
7699
19.0k
            }
7700
21.3k
        }
7701
281k
    }
7702
2.46k
    if (SCN_UNLIKELY(begin == end)) {
7703
172
        handler.on_error("Unexpected end of regex in format string");
7704
172
        return begin;
7705
172
    }
7706
7707
2.28k
    auto regex_end = begin;
7708
2.28k
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
7709
2.28k
    if (SCN_UNLIKELY(regex_pattern.empty())) {
7710
34
        handler.on_error("Invalid (empty) regex in format string");
7711
34
        return begin;
7712
34
    }
7713
2.25k
    handler.on_regex_pattern(regex_pattern);
7714
2.25k
    ++begin;
7715
7716
2.25k
    if (SCN_UNLIKELY(begin == end)) {
7717
34
        handler.on_error("Unexpected end of regex in format string");
7718
34
        return begin;
7719
34
    }
7720
7721
2.22k
    regex_flags flags{regex_flags::none};
7722
2.22k
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
7723
2.22k
        {{'m', regex_flags::multiline},
7724
2.22k
         {'s', regex_flags::singleline},
7725
2.22k
         {'i', regex_flags::nocase},
7726
2.22k
         {'n', regex_flags::nocapture}}};
7727
2.44k
    for (; begin != end; ++begin) {
7728
2.35k
        if (*begin == CharT{'}'}) {
7729
2.04k
            break;
7730
2.04k
        }
7731
310
        bool found_flag = false;
7732
874
        for (auto flag : flag_map) {
7733
874
            if (static_cast<CharT>(flag.first) != *begin) {
7734
618
                continue;
7735
618
            }
7736
256
            if ((flags & flag.second) != regex_flags::none) {
7737
34
                handler.on_error("Flag set multiple times in regex");
7738
34
                return begin;
7739
34
            }
7740
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
7741
            if (*begin == CharT{'s'}) {
7742
                // clang-format off
7743
                handler.on_error("/s flag for regex isn't supported by regex backend");
7744
                // clang-format on
7745
            }
7746
#if !SCN_HAS_STD_REGEX_MULTILINE
7747
            if (*begin == CharT{'m'}) {
7748
                // clang-format off
7749
                handler.on_error("/m flag for regex isn't supported by regex backend");
7750
                // clang-format on
7751
            }
7752
#endif
7753
#endif
7754
222
            flags |= flag.second;
7755
222
            found_flag = true;
7756
222
            break;
7757
256
        }
7758
276
        if (!found_flag) {
7759
54
            handler.on_error("Invalid flag in regex");
7760
54
            return begin;
7761
54
        }
7762
276
    }
7763
2.13k
    handler.on_regex_flags(flags);
7764
7765
2.13k
    if (SCN_UNLIKELY(begin == end)) {
7766
42
        handler.on_error("Unexpected end of regex in format string");
7767
42
        return begin;
7768
42
    }
7769
7770
2.09k
    return begin;
7771
#else
7772
    SCN_UNUSED(begin);
7773
    SCN_UNUSED(end);
7774
    handler.on_error("Regular expression support is disabled");
7775
    return {};
7776
#endif
7777
2.13k
}
impl.cpp:char const* scn::v4::detail::parse_presentation_regex<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7672
2.45k
{
7673
2.45k
#if !SCN_DISABLE_REGEX
7674
2.45k
    SCN_EXPECT(begin != end);
7675
2.45k
    SCN_EXPECT(*begin == CharT{'/'});
7676
7677
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
7678
                  std::is_same_v<CharT, wchar_t>) {
7679
        handler.on_error("Regex backend doesn't support wide strings as input");
7680
        return begin;
7681
    }
7682
7683
2.45k
    auto start = begin;
7684
2.45k
    ++begin;
7685
7686
2.45k
    if (SCN_UNLIKELY(begin == end)) {
7687
34
        handler.on_error("Unexpected end of regex in format string");
7688
34
        return begin;
7689
34
    }
7690
7691
2.41k
    handler.on_type(presentation_type::regex);
7692
281k
    for (; begin != end; ++begin) {
7693
281k
        if (*begin == CharT{'/'}) {
7694
21.3k
            if (*(begin - 1) != CharT{'\\'}) {
7695
2.24k
                break;
7696
2.24k
            }
7697
19.0k
            else {
7698
19.0k
                handler.on_type(presentation_type::regex_escaped);
7699
19.0k
            }
7700
21.3k
        }
7701
281k
    }
7702
2.41k
    if (SCN_UNLIKELY(begin == end)) {
7703
172
        handler.on_error("Unexpected end of regex in format string");
7704
172
        return begin;
7705
172
    }
7706
7707
2.24k
    auto regex_end = begin;
7708
2.24k
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
7709
2.24k
    if (SCN_UNLIKELY(regex_pattern.empty())) {
7710
34
        handler.on_error("Invalid (empty) regex in format string");
7711
34
        return begin;
7712
34
    }
7713
2.21k
    handler.on_regex_pattern(regex_pattern);
7714
2.21k
    ++begin;
7715
7716
2.21k
    if (SCN_UNLIKELY(begin == end)) {
7717
34
        handler.on_error("Unexpected end of regex in format string");
7718
34
        return begin;
7719
34
    }
7720
7721
2.17k
    regex_flags flags{regex_flags::none};
7722
2.17k
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
7723
2.17k
        {{'m', regex_flags::multiline},
7724
2.17k
         {'s', regex_flags::singleline},
7725
2.17k
         {'i', regex_flags::nocase},
7726
2.17k
         {'n', regex_flags::nocapture}}};
7727
2.40k
    for (; begin != end; ++begin) {
7728
2.35k
        if (*begin == CharT{'}'}) {
7729
2.04k
            break;
7730
2.04k
        }
7731
310
        bool found_flag = false;
7732
874
        for (auto flag : flag_map) {
7733
874
            if (static_cast<CharT>(flag.first) != *begin) {
7734
618
                continue;
7735
618
            }
7736
256
            if ((flags & flag.second) != regex_flags::none) {
7737
34
                handler.on_error("Flag set multiple times in regex");
7738
34
                return begin;
7739
34
            }
7740
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
7741
            if (*begin == CharT{'s'}) {
7742
                // clang-format off
7743
                handler.on_error("/s flag for regex isn't supported by regex backend");
7744
                // clang-format on
7745
            }
7746
#if !SCN_HAS_STD_REGEX_MULTILINE
7747
            if (*begin == CharT{'m'}) {
7748
                // clang-format off
7749
                handler.on_error("/m flag for regex isn't supported by regex backend");
7750
                // clang-format on
7751
            }
7752
#endif
7753
#endif
7754
222
            flags |= flag.second;
7755
222
            found_flag = true;
7756
222
            break;
7757
256
        }
7758
276
        if (!found_flag) {
7759
54
            handler.on_error("Invalid flag in regex");
7760
54
            return begin;
7761
54
        }
7762
276
    }
7763
2.09k
    handler.on_regex_flags(flags);
7764
7765
2.09k
    if (SCN_UNLIKELY(begin == end)) {
7766
42
        handler.on_error("Unexpected end of regex in format string");
7767
42
        return begin;
7768
42
    }
7769
7770
2.04k
    return begin;
7771
#else
7772
    SCN_UNUSED(begin);
7773
    SCN_UNUSED(end);
7774
    handler.on_error("Regular expression support is disabled");
7775
    return {};
7776
#endif
7777
2.09k
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_presentation_regex<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*&, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
impl.cpp:wchar_t const* scn::v4::detail::parse_presentation_regex<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7672
42
{
7673
42
#if !SCN_DISABLE_REGEX
7674
42
    SCN_EXPECT(begin != end);
7675
42
    SCN_EXPECT(*begin == CharT{'/'});
7676
7677
    if constexpr (!SCN_REGEX_SUPPORTS_WIDE_STRINGS &&
7678
42
                  std::is_same_v<CharT, wchar_t>) {
7679
42
        handler.on_error("Regex backend doesn't support wide strings as input");
7680
42
        return begin;
7681
42
    }
7682
7683
0
    auto start = begin;
7684
42
    ++begin;
7685
7686
42
    if (SCN_UNLIKELY(begin == end)) {
7687
0
        handler.on_error("Unexpected end of regex in format string");
7688
0
        return begin;
7689
0
    }
7690
7691
42
    handler.on_type(presentation_type::regex);
7692
42
    for (; begin != end; ++begin) {
7693
0
        if (*begin == CharT{'/'}) {
7694
0
            if (*(begin - 1) != CharT{'\\'}) {
7695
0
                break;
7696
0
            }
7697
0
            else {
7698
0
                handler.on_type(presentation_type::regex_escaped);
7699
0
            }
7700
0
        }
7701
0
    }
7702
42
    if (SCN_UNLIKELY(begin == end)) {
7703
0
        handler.on_error("Unexpected end of regex in format string");
7704
0
        return begin;
7705
0
    }
7706
7707
42
    auto regex_end = begin;
7708
42
    auto regex_pattern = make_string_view_from_pointers(start + 1, regex_end);
7709
42
    if (SCN_UNLIKELY(regex_pattern.empty())) {
7710
0
        handler.on_error("Invalid (empty) regex in format string");
7711
0
        return begin;
7712
0
    }
7713
42
    handler.on_regex_pattern(regex_pattern);
7714
42
    ++begin;
7715
7716
42
    if (SCN_UNLIKELY(begin == end)) {
7717
0
        handler.on_error("Unexpected end of regex in format string");
7718
0
        return begin;
7719
0
    }
7720
7721
42
    regex_flags flags{regex_flags::none};
7722
42
    constexpr std::array<std::pair<char, regex_flags>, 4> flag_map{
7723
42
        {{'m', regex_flags::multiline},
7724
42
         {'s', regex_flags::singleline},
7725
42
         {'i', regex_flags::nocase},
7726
42
         {'n', regex_flags::nocapture}}};
7727
42
    for (; begin != end; ++begin) {
7728
0
        if (*begin == CharT{'}'}) {
7729
0
            break;
7730
0
        }
7731
0
        bool found_flag = false;
7732
0
        for (auto flag : flag_map) {
7733
0
            if (static_cast<CharT>(flag.first) != *begin) {
7734
0
                continue;
7735
0
            }
7736
0
            if ((flags & flag.second) != regex_flags::none) {
7737
0
                handler.on_error("Flag set multiple times in regex");
7738
0
                return begin;
7739
0
            }
7740
#if SCN_REGEX_BACKEND == SCN_REGEX_BACKEND_STD
7741
            if (*begin == CharT{'s'}) {
7742
                // clang-format off
7743
                handler.on_error("/s flag for regex isn't supported by regex backend");
7744
                // clang-format on
7745
            }
7746
#if !SCN_HAS_STD_REGEX_MULTILINE
7747
            if (*begin == CharT{'m'}) {
7748
                // clang-format off
7749
                handler.on_error("/m flag for regex isn't supported by regex backend");
7750
                // clang-format on
7751
            }
7752
#endif
7753
#endif
7754
0
            flags |= flag.second;
7755
0
            found_flag = true;
7756
0
            break;
7757
0
        }
7758
0
        if (!found_flag) {
7759
0
            handler.on_error("Invalid flag in regex");
7760
0
            return begin;
7761
0
        }
7762
0
    }
7763
42
    handler.on_regex_flags(flags);
7764
7765
42
    if (SCN_UNLIKELY(begin == end)) {
7766
0
        handler.on_error("Unexpected end of regex in format string");
7767
0
        return begin;
7768
0
    }
7769
7770
42
    return begin;
7771
#else
7772
    SCN_UNUSED(begin);
7773
    SCN_UNUSED(end);
7774
    handler.on_error("Regular expression support is disabled");
7775
    return {};
7776
#endif
7777
42
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_presentation_regex<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*&, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7778
7779
template <typename CharT, typename SpecHandler>
7780
constexpr const CharT* parse_format_specs(const CharT* begin,
7781
                                          const CharT* end,
7782
                                          SpecHandler&& handler)
7783
38.9k
{
7784
38.9k
    auto do_presentation = [&]() -> const CharT* {
7785
27.4k
        if (*begin == CharT{'['}) {
7786
14.9k
            auto set = parse_presentation_set(begin, end, handler);
7787
14.9k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7788
                // clang-format off
7789
1.39k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7790
                // clang-format on
7791
1.39k
                return begin;
7792
1.39k
            }
7793
13.6k
            handler.on_character_set_string(set);
7794
13.6k
            return begin;
7795
14.9k
        }
7796
12.4k
        if (*begin == CharT{'/'}) {
7797
2.49k
            return parse_presentation_regex(begin, end, handler);
7798
2.49k
        }
7799
9.98k
        presentation_type type = parse_presentation_type(*begin++);
7800
9.98k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7801
992
            handler.on_error("Invalid type specifier in format string");
7802
992
            return begin;
7803
992
        }
7804
8.99k
        handler.on_type(type);
7805
8.99k
        return begin;
7806
9.98k
    };
impl.cpp:scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7784
19.0k
    auto do_presentation = [&]() -> const CharT* {
7785
19.0k
        if (*begin == CharT{'['}) {
7786
11.0k
            auto set = parse_presentation_set(begin, end, handler);
7787
11.0k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7788
                // clang-format off
7789
810
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7790
                // clang-format on
7791
810
                return begin;
7792
810
            }
7793
10.2k
            handler.on_character_set_string(set);
7794
10.2k
            return begin;
7795
11.0k
        }
7796
8.01k
        if (*begin == CharT{'/'}) {
7797
2.45k
            return parse_presentation_regex(begin, end, handler);
7798
2.45k
        }
7799
5.56k
        presentation_type type = parse_presentation_type(*begin++);
7800
5.56k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7801
530
            handler.on_error("Invalid type specifier in format string");
7802
530
            return begin;
7803
530
        }
7804
5.03k
        handler.on_type(type);
7805
5.03k
        return begin;
7806
5.56k
    };
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)::{lambda()#1}::operator()() const
impl.cpp:scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)::{lambda()#1}::operator()() const
Line
Count
Source
7784
8.38k
    auto do_presentation = [&]() -> const CharT* {
7785
8.38k
        if (*begin == CharT{'['}) {
7786
3.92k
            auto set = parse_presentation_set(begin, end, handler);
7787
3.92k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7788
                // clang-format off
7789
584
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7790
                // clang-format on
7791
584
                return begin;
7792
584
            }
7793
3.33k
            handler.on_character_set_string(set);
7794
3.33k
            return begin;
7795
3.92k
        }
7796
4.46k
        if (*begin == CharT{'/'}) {
7797
42
            return parse_presentation_regex(begin, end, handler);
7798
42
        }
7799
4.42k
        presentation_type type = parse_presentation_type(*begin++);
7800
4.42k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7801
462
            handler.on_error("Invalid type specifier in format string");
7802
462
            return begin;
7803
462
        }
7804
3.96k
        handler.on_type(type);
7805
3.96k
        return begin;
7806
4.42k
    };
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)::{lambda()#1}::operator()() const
7807
7808
38.9k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7809
38.9k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7810
1.45k
        return do_presentation();
7811
1.45k
    }
7812
7813
37.5k
    if (SCN_UNLIKELY(begin == end)) {
7814
0
        handler.on_error("Unexpected end of format string");
7815
0
        return begin;
7816
0
    }
7817
7818
37.5k
    begin = parse_align(begin, end, handler);
7819
37.5k
    if (SCN_UNLIKELY(begin == end)) {
7820
246
        handler.on_error("Unexpected end of format string");
7821
246
        return begin;
7822
246
    }
7823
7824
37.2k
    begin = parse_width(begin, end, handler);
7825
37.2k
    if (SCN_UNLIKELY(begin == end)) {
7826
218
        handler.on_error("Unexpected end of format string");
7827
218
        return begin;
7828
218
    }
7829
7830
37.0k
    if (*begin == CharT{'.'}) {
7831
14.7k
        ++begin;
7832
14.7k
        if (SCN_UNLIKELY(begin == end)) {
7833
68
            handler.on_error("Unexpected end of format string");
7834
68
            return begin;
7835
68
        }
7836
14.7k
        begin = parse_precision(begin, end, handler);
7837
14.7k
        if (SCN_UNLIKELY(begin == end)) {
7838
248
            handler.on_error("Unexpected end of format string");
7839
248
            return begin;
7840
248
        }
7841
14.7k
    }
7842
7843
36.7k
    if (*begin == CharT{'L'}) {
7844
1.15k
        handler.on_localized();
7845
1.15k
        ++begin;
7846
1.15k
    }
7847
36.7k
    if (SCN_UNLIKELY(begin == end)) {
7848
112
        handler.on_error("Unexpected end of format string");
7849
112
        return begin;
7850
112
    }
7851
7852
36.6k
    if (begin != end && *begin != CharT{'}'}) {
7853
26.0k
        do_presentation();
7854
26.0k
    }
7855
36.6k
    if (SCN_UNLIKELY(begin == end)) {
7856
3.36k
        handler.on_error("Unexpected end of format string");
7857
3.36k
        return begin;
7858
3.36k
    }
7859
7860
33.2k
    return begin;
7861
36.6k
}
impl.cpp:char const* scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >&)
Line
Count
Source
7783
25.1k
{
7784
25.1k
    auto do_presentation = [&]() -> const CharT* {
7785
25.1k
        if (*begin == CharT{'['}) {
7786
25.1k
            auto set = parse_presentation_set(begin, end, handler);
7787
25.1k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7788
                // clang-format off
7789
25.1k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7790
                // clang-format on
7791
25.1k
                return begin;
7792
25.1k
            }
7793
25.1k
            handler.on_character_set_string(set);
7794
25.1k
            return begin;
7795
25.1k
        }
7796
25.1k
        if (*begin == CharT{'/'}) {
7797
25.1k
            return parse_presentation_regex(begin, end, handler);
7798
25.1k
        }
7799
25.1k
        presentation_type type = parse_presentation_type(*begin++);
7800
25.1k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7801
25.1k
            handler.on_error("Invalid type specifier in format string");
7802
25.1k
            return begin;
7803
25.1k
        }
7804
25.1k
        handler.on_type(type);
7805
25.1k
        return begin;
7806
25.1k
    };
7807
7808
25.1k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7809
25.1k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7810
934
        return do_presentation();
7811
934
    }
7812
7813
24.1k
    if (SCN_UNLIKELY(begin == end)) {
7814
0
        handler.on_error("Unexpected end of format string");
7815
0
        return begin;
7816
0
    }
7817
7818
24.1k
    begin = parse_align(begin, end, handler);
7819
24.1k
    if (SCN_UNLIKELY(begin == end)) {
7820
126
        handler.on_error("Unexpected end of format string");
7821
126
        return begin;
7822
126
    }
7823
7824
24.0k
    begin = parse_width(begin, end, handler);
7825
24.0k
    if (SCN_UNLIKELY(begin == end)) {
7826
102
        handler.on_error("Unexpected end of format string");
7827
102
        return begin;
7828
102
    }
7829
7830
23.9k
    if (*begin == CharT{'.'}) {
7831
9.57k
        ++begin;
7832
9.57k
        if (SCN_UNLIKELY(begin == end)) {
7833
34
            handler.on_error("Unexpected end of format string");
7834
34
            return begin;
7835
34
        }
7836
9.54k
        begin = parse_precision(begin, end, handler);
7837
9.54k
        if (SCN_UNLIKELY(begin == end)) {
7838
114
            handler.on_error("Unexpected end of format string");
7839
114
            return begin;
7840
114
        }
7841
9.54k
    }
7842
7843
23.7k
    if (*begin == CharT{'L'}) {
7844
524
        handler.on_localized();
7845
524
        ++begin;
7846
524
    }
7847
23.7k
    if (SCN_UNLIKELY(begin == end)) {
7848
52
        handler.on_error("Unexpected end of format string");
7849
52
        return begin;
7850
52
    }
7851
7852
23.7k
    if (begin != end && *begin != CharT{'}'}) {
7853
18.1k
        do_presentation();
7854
18.1k
    }
7855
23.7k
    if (SCN_UNLIKELY(begin == end)) {
7856
1.93k
        handler.on_error("Unexpected end of format string");
7857
1.93k
        return begin;
7858
1.93k
    }
7859
7860
21.8k
    return begin;
7861
23.7k
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_format_specs<char, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&>(char const*, char const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >&)
impl.cpp:wchar_t const* scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >&)
Line
Count
Source
7783
13.8k
{
7784
13.8k
    auto do_presentation = [&]() -> const CharT* {
7785
13.8k
        if (*begin == CharT{'['}) {
7786
13.8k
            auto set = parse_presentation_set(begin, end, handler);
7787
13.8k
            if (SCN_UNLIKELY(set.size() <= 2)) {
7788
                // clang-format off
7789
13.8k
                handler.on_error("Invalid (empty) [character set] specifier in format string");
7790
                // clang-format on
7791
13.8k
                return begin;
7792
13.8k
            }
7793
13.8k
            handler.on_character_set_string(set);
7794
13.8k
            return begin;
7795
13.8k
        }
7796
13.8k
        if (*begin == CharT{'/'}) {
7797
13.8k
            return parse_presentation_regex(begin, end, handler);
7798
13.8k
        }
7799
13.8k
        presentation_type type = parse_presentation_type(*begin++);
7800
13.8k
        if (SCN_UNLIKELY(type == presentation_type::none)) {
7801
13.8k
            handler.on_error("Invalid type specifier in format string");
7802
13.8k
            return begin;
7803
13.8k
        }
7804
13.8k
        handler.on_type(type);
7805
13.8k
        return begin;
7806
13.8k
    };
7807
7808
13.8k
    if (end - begin > 1 && *(begin + 1) == CharT{'}'} &&
7809
13.8k
        is_ascii_letter(*begin) && *begin != CharT{'L'}) {
7810
520
        return do_presentation();
7811
520
    }
7812
7813
13.3k
    if (SCN_UNLIKELY(begin == end)) {
7814
0
        handler.on_error("Unexpected end of format string");
7815
0
        return begin;
7816
0
    }
7817
7818
13.3k
    begin = parse_align(begin, end, handler);
7819
13.3k
    if (SCN_UNLIKELY(begin == end)) {
7820
120
        handler.on_error("Unexpected end of format string");
7821
120
        return begin;
7822
120
    }
7823
7824
13.2k
    begin = parse_width(begin, end, handler);
7825
13.2k
    if (SCN_UNLIKELY(begin == end)) {
7826
116
        handler.on_error("Unexpected end of format string");
7827
116
        return begin;
7828
116
    }
7829
7830
13.1k
    if (*begin == CharT{'.'}) {
7831
5.22k
        ++begin;
7832
5.22k
        if (SCN_UNLIKELY(begin == end)) {
7833
34
            handler.on_error("Unexpected end of format string");
7834
34
            return begin;
7835
34
        }
7836
5.18k
        begin = parse_precision(begin, end, handler);
7837
5.18k
        if (SCN_UNLIKELY(begin == end)) {
7838
134
            handler.on_error("Unexpected end of format string");
7839
134
            return begin;
7840
134
        }
7841
5.18k
    }
7842
7843
12.9k
    if (*begin == CharT{'L'}) {
7844
634
        handler.on_localized();
7845
634
        ++begin;
7846
634
    }
7847
12.9k
    if (SCN_UNLIKELY(begin == end)) {
7848
60
        handler.on_error("Unexpected end of format string");
7849
60
        return begin;
7850
60
    }
7851
7852
12.8k
    if (begin != end && *begin != CharT{'}'}) {
7853
7.86k
        do_presentation();
7854
7.86k
    }
7855
12.8k
    if (SCN_UNLIKELY(begin == end)) {
7856
1.43k
        handler.on_error("Unexpected end of format string");
7857
1.43k
        return begin;
7858
1.43k
    }
7859
7860
11.4k
    return begin;
7861
12.8k
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_format_specs<wchar_t, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&>(wchar_t const*, wchar_t const*, scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >&)
7862
7863
template <typename CharT, typename Handler>
7864
constexpr const CharT* parse_replacement_field(const CharT* begin,
7865
                                               const CharT* end,
7866
                                               Handler& handler)
7867
152k
{
7868
152k
    struct id_adapter {
7869
152k
        constexpr void operator()()
7870
152k
        {
7871
37.4k
            arg_id = handler.on_arg_id();
7872
37.4k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()()
Line
Count
Source
7870
24.7k
        {
7871
24.7k
            arg_id = handler.on_arg_id();
7872
24.7k
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()()
impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()()
Line
Count
Source
7870
12.7k
        {
7871
12.7k
            arg_id = handler.on_arg_id();
7872
12.7k
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()()
7873
152k
        constexpr void operator()(std::size_t id)
7874
152k
        {
7875
1.89k
            arg_id = handler.on_arg_id(id);
7876
1.89k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::operator()(unsigned long)
Line
Count
Source
7874
538
        {
7875
538
            arg_id = handler.on_arg_id(id);
7876
538
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::operator()(unsigned long)
impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::operator()(unsigned long)
Line
Count
Source
7874
1.35k
        {
7875
1.35k
            arg_id = handler.on_arg_id(id);
7876
1.35k
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::operator()(unsigned long)
7877
7878
152k
        constexpr void on_error(const char* msg)
7879
152k
        {
7880
40.8k
            SCN_UNLIKELY_ATTR
7881
40.8k
            handler.on_error(msg);
7882
40.8k
        }
impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)::id_adapter::on_error(char const*)
Line
Count
Source
7879
18.0k
        {
7880
18.0k
            SCN_UNLIKELY_ATTR
7881
18.0k
            handler.on_error(msg);
7882
18.0k
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)::id_adapter::on_error(char const*)
impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)::id_adapter::on_error(char const*)
Line
Count
Source
7879
22.7k
        {
7880
22.7k
            SCN_UNLIKELY_ATTR
7881
22.7k
            handler.on_error(msg);
7882
22.7k
        }
Unexecuted instantiation: impl.cpp:scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)::id_adapter::on_error(char const*)
7883
7884
152k
        Handler& handler;
7885
152k
        std::size_t arg_id;
7886
152k
    };
7887
7888
152k
    ++begin;
7889
152k
    if (SCN_UNLIKELY(begin == end)) {
7890
168
        handler.on_error("Unexpected end of replacement field");
7891
168
        return begin;
7892
168
    }
7893
7894
152k
    if (*begin == CharT{'}'}) {
7895
60.5k
        handler.on_replacement_field(handler.on_arg_id(), begin);
7896
60.5k
    }
7897
91.8k
    else if (*begin == CharT{'{'}) {
7898
11.6k
        handler.on_literal_text(begin, begin + 1);
7899
11.6k
    }
7900
80.2k
    else {
7901
80.2k
        auto adapter = id_adapter{handler, 0};
7902
80.2k
        begin = parse_arg_id(begin, end, adapter);
7903
7904
80.2k
        if (SCN_UNLIKELY(begin == end)) {
7905
222
            handler.on_error("Missing '}' in format string");
7906
222
            return begin;
7907
222
        }
7908
7909
80.0k
        if (*begin == CharT{'}'}) {
7910
298
            handler.on_replacement_field(adapter.arg_id, begin);
7911
298
        }
7912
79.7k
        else if (*begin == CharT{':'}) {
7913
39.0k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7914
124
                handler.on_error("Unexpected end of replacement field");
7915
124
                return begin;
7916
124
            }
7917
38.9k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7918
38.9k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7919
5.05k
                handler.on_error("Unknown format specifier");
7920
5.05k
                return begin;
7921
5.05k
            }
7922
38.9k
        }
7923
40.6k
        else {
7924
40.6k
            SCN_UNLIKELY_ATTR
7925
40.6k
            handler.on_error("Missing '}' in format string");
7926
40.6k
            return begin;
7927
40.6k
        }
7928
80.0k
    }
7929
106k
    return begin + 1;
7930
152k
}
impl.cpp:char const* scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<true, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7867
55.8k
{
7868
55.8k
    struct id_adapter {
7869
55.8k
        constexpr void operator()()
7870
55.8k
        {
7871
55.8k
            arg_id = handler.on_arg_id();
7872
55.8k
        }
7873
55.8k
        constexpr void operator()(std::size_t id)
7874
55.8k
        {
7875
55.8k
            arg_id = handler.on_arg_id(id);
7876
55.8k
        }
7877
7878
55.8k
        constexpr void on_error(const char* msg)
7879
55.8k
        {
7880
55.8k
            SCN_UNLIKELY_ATTR
7881
55.8k
            handler.on_error(msg);
7882
55.8k
        }
7883
7884
55.8k
        Handler& handler;
7885
55.8k
        std::size_t arg_id;
7886
55.8k
    };
7887
7888
55.8k
    ++begin;
7889
55.8k
    if (SCN_UNLIKELY(begin == end)) {
7890
98
        handler.on_error("Unexpected end of replacement field");
7891
98
        return begin;
7892
98
    }
7893
7894
55.7k
    if (*begin == CharT{'}'}) {
7895
5.65k
        handler.on_replacement_field(handler.on_arg_id(), begin);
7896
5.65k
    }
7897
50.0k
    else if (*begin == CharT{'{'}) {
7898
6.66k
        handler.on_literal_text(begin, begin + 1);
7899
6.66k
    }
7900
43.4k
    else {
7901
43.4k
        auto adapter = id_adapter{handler, 0};
7902
43.4k
        begin = parse_arg_id(begin, end, adapter);
7903
7904
43.4k
        if (SCN_UNLIKELY(begin == end)) {
7905
110
            handler.on_error("Missing '}' in format string");
7906
110
            return begin;
7907
110
        }
7908
7909
43.2k
        if (*begin == CharT{'}'}) {
7910
140
            handler.on_replacement_field(adapter.arg_id, begin);
7911
140
        }
7912
43.1k
        else if (*begin == CharT{':'}) {
7913
25.1k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7914
74
                handler.on_error("Unexpected end of replacement field");
7915
74
                return begin;
7916
74
            }
7917
25.1k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7918
25.1k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7919
2.88k
                handler.on_error("Unknown format specifier");
7920
2.88k
                return begin;
7921
2.88k
            }
7922
25.1k
        }
7923
17.9k
        else {
7924
17.9k
            SCN_UNLIKELY_ATTR
7925
17.9k
            handler.on_error("Missing '}' in format string");
7926
17.9k
            return begin;
7927
17.9k
        }
7928
43.2k
    }
7929
34.6k
    return begin + 1;
7930
55.7k
}
Unexecuted instantiation: impl.cpp:char const* scn::v4::detail::parse_replacement_field<char, scn::v4::(anonymous namespace)::format_handler<false, char> >(char const*, char const*, scn::v4::(anonymous namespace)::format_handler<false, char>&)
impl.cpp:wchar_t const* scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7867
96.7k
{
7868
96.7k
    struct id_adapter {
7869
96.7k
        constexpr void operator()()
7870
96.7k
        {
7871
96.7k
            arg_id = handler.on_arg_id();
7872
96.7k
        }
7873
96.7k
        constexpr void operator()(std::size_t id)
7874
96.7k
        {
7875
96.7k
            arg_id = handler.on_arg_id(id);
7876
96.7k
        }
7877
7878
96.7k
        constexpr void on_error(const char* msg)
7879
96.7k
        {
7880
96.7k
            SCN_UNLIKELY_ATTR
7881
96.7k
            handler.on_error(msg);
7882
96.7k
        }
7883
7884
96.7k
        Handler& handler;
7885
96.7k
        std::size_t arg_id;
7886
96.7k
    };
7887
7888
96.7k
    ++begin;
7889
96.7k
    if (SCN_UNLIKELY(begin == end)) {
7890
70
        handler.on_error("Unexpected end of replacement field");
7891
70
        return begin;
7892
70
    }
7893
7894
96.6k
    if (*begin == CharT{'}'}) {
7895
54.8k
        handler.on_replacement_field(handler.on_arg_id(), begin);
7896
54.8k
    }
7897
41.8k
    else if (*begin == CharT{'{'}) {
7898
4.95k
        handler.on_literal_text(begin, begin + 1);
7899
4.95k
    }
7900
36.8k
    else {
7901
36.8k
        auto adapter = id_adapter{handler, 0};
7902
36.8k
        begin = parse_arg_id(begin, end, adapter);
7903
7904
36.8k
        if (SCN_UNLIKELY(begin == end)) {
7905
112
            handler.on_error("Missing '}' in format string");
7906
112
            return begin;
7907
112
        }
7908
7909
36.7k
        if (*begin == CharT{'}'}) {
7910
158
            handler.on_replacement_field(adapter.arg_id, begin);
7911
158
        }
7912
36.5k
        else if (*begin == CharT{':'}) {
7913
13.9k
            if (SCN_UNLIKELY(begin + 1 == end)) {
7914
50
                handler.on_error("Unexpected end of replacement field");
7915
50
                return begin;
7916
50
            }
7917
13.8k
            begin = handler.on_format_specs(adapter.arg_id, begin + 1, end);
7918
13.8k
            if (SCN_UNLIKELY(begin == end || *begin != '}')) {
7919
2.17k
                handler.on_error("Unknown format specifier");
7920
2.17k
                return begin;
7921
2.17k
            }
7922
13.8k
        }
7923
22.6k
        else {
7924
22.6k
            SCN_UNLIKELY_ATTR
7925
22.6k
            handler.on_error("Missing '}' in format string");
7926
22.6k
            return begin;
7927
22.6k
        }
7928
36.7k
    }
7929
71.6k
    return begin + 1;
7930
96.6k
}
Unexecuted instantiation: impl.cpp:wchar_t const* scn::v4::detail::parse_replacement_field<wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t> >(wchar_t const*, wchar_t const*, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
7931
7932
template <bool IsConstexpr, typename CharT, typename Handler>
7933
constexpr void parse_format_string_impl(std::basic_string_view<CharT> format,
7934
                                        Handler&& handler)
7935
151k
{
7936
    // TODO: memchr fast path with a larger (> 32) format string
7937
7938
151k
    auto begin = format.data();
7939
151k
    auto it = begin;
7940
151k
    const auto end = format.data() + format.size();
7941
7942
208M
    while (it != end) {
7943
208M
        const auto ch = *it++;
7944
208M
        if (ch == CharT{'{'}) {
7945
152k
            handler.on_literal_text(begin, it - 1);
7946
7947
152k
            begin = it = parse_replacement_field(it - 1, end, handler);
7948
152k
            if (!handler.get_error()) {
7949
108k
                return;
7950
108k
            }
7951
152k
        }
7952
207M
        else if (ch == CharT{'}'}) {
7953
3.48k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7954
994
                handler.on_error("Unmatched '}' in format string");
7955
994
                return;
7956
994
            }
7957
7958
2.48k
            handler.on_literal_text(begin, it);
7959
2.48k
            begin = ++it;
7960
2.48k
        }
7961
208M
    }
7962
7963
41.8k
    handler.on_literal_text(begin, end);
7964
41.8k
}
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, char, scn::v4::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7935
50.5k
{
7936
    // TODO: memchr fast path with a larger (> 32) format string
7937
7938
50.5k
    auto begin = format.data();
7939
50.5k
    auto it = begin;
7940
50.5k
    const auto end = format.data() + format.size();
7941
7942
151k
    while (it != end) {
7943
145k
        const auto ch = *it++;
7944
145k
        if (ch == CharT{'{'}) {
7945
55.8k
            handler.on_literal_text(begin, it - 1);
7946
7947
55.8k
            begin = it = parse_replacement_field(it - 1, end, handler);
7948
55.8k
            if (!handler.get_error()) {
7949
43.6k
                return;
7950
43.6k
            }
7951
55.8k
        }
7952
89.9k
        else if (ch == CharT{'}'}) {
7953
2.05k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7954
878
                handler.on_error("Unmatched '}' in format string");
7955
878
                return;
7956
878
            }
7957
7958
1.17k
            handler.on_literal_text(begin, it);
7959
1.17k
            begin = ++it;
7960
1.17k
        }
7961
145k
    }
7962
7963
6.05k
    handler.on_literal_text(begin, end);
7964
6.05k
}
Unexecuted instantiation: impl.cpp:void scn::v4::detail::parse_format_string_impl<false, char, scn::v4::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<false, char>&)
impl.cpp:void scn::v4::detail::parse_format_string_impl<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7935
101k
{
7936
    // TODO: memchr fast path with a larger (> 32) format string
7937
7938
101k
    auto begin = format.data();
7939
101k
    auto it = begin;
7940
101k
    const auto end = format.data() + format.size();
7941
7942
207M
    while (it != end) {
7943
207M
        const auto ch = *it++;
7944
207M
        if (ch == CharT{'{'}) {
7945
96.7k
            handler.on_literal_text(begin, it - 1);
7946
7947
96.7k
            begin = it = parse_replacement_field(it - 1, end, handler);
7948
96.7k
            if (!handler.get_error()) {
7949
65.2k
                return;
7950
65.2k
            }
7951
96.7k
        }
7952
207M
        else if (ch == CharT{'}'}) {
7953
1.42k
            if (SCN_UNLIKELY(it == end || *it != CharT{'}'})) {
7954
116
                handler.on_error("Unmatched '}' in format string");
7955
116
                return;
7956
116
            }
7957
7958
1.31k
            handler.on_literal_text(begin, it);
7959
1.31k
            begin = ++it;
7960
1.31k
        }
7961
207M
    }
7962
7963
35.7k
    handler.on_literal_text(begin, end);
7964
35.7k
}
Unexecuted instantiation: impl.cpp:void scn::v4::detail::parse_format_string_impl<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
7965
7966
template <bool IsConstexpr, typename CharT, typename Handler>
7967
constexpr scan_expected<void> parse_format_string(
7968
    std::basic_string_view<CharT> format,
7969
    Handler&& handler)
7970
151k
{
7971
151k
    parse_format_string_impl<IsConstexpr>(format, handler);
7972
151k
    handler.check_args_exhausted();
7973
151k
    return handler.get_error();
7974
151k
}
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, char, scn::v4::(anonymous namespace)::format_handler<true, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<true, char>&)
Line
Count
Source
7970
50.5k
{
7971
50.5k
    parse_format_string_impl<IsConstexpr>(format, handler);
7972
50.5k
    handler.check_args_exhausted();
7973
50.5k
    return handler.get_error();
7974
50.5k
}
Unexecuted instantiation: impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, char, scn::v4::(anonymous namespace)::format_handler<false, char>&>(std::__1::basic_string_view<char, std::__1::char_traits<char> >, scn::v4::(anonymous namespace)::format_handler<false, char>&)
impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<true, wchar_t>&)
Line
Count
Source
7970
101k
{
7971
101k
    parse_format_string_impl<IsConstexpr>(format, handler);
7972
101k
    handler.check_args_exhausted();
7973
101k
    return handler.get_error();
7974
101k
}
Unexecuted instantiation: impl.cpp:scn::v4::scan_expected<void> scn::v4::detail::parse_format_string<false, wchar_t, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&>(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >, scn::v4::(anonymous namespace)::format_handler<false, wchar_t>&)
7975
7976
enum class arg_type_category {
7977
    none,
7978
    integer,
7979
    unsigned_integer,
7980
    floating,
7981
    string,
7982
    pointer,
7983
    boolean,
7984
    character,
7985
    custom
7986
};
7987
7988
constexpr arg_type_category get_category_for_arg_type(arg_type type)
7989
1.15k
{
7990
1.15k
    switch (type) {
7991
106
        case arg_type::none_type:
7992
106
            return arg_type_category::none;
7993
7994
0
        case arg_type::schar_type:
7995
0
        case arg_type::short_type:
7996
118
        case arg_type::int_type:
7997
118
        case arg_type::long_type:
7998
118
        case arg_type::llong_type:
7999
118
        case arg_type::int128_type:
8000
118
            return arg_type_category::integer;
8001
8002
0
        case arg_type::uchar_type:
8003
0
        case arg_type::ushort_type:
8004
118
        case arg_type::uint_type:
8005
118
        case arg_type::ulong_type:
8006
118
        case arg_type::ullong_type:
8007
118
        case arg_type::uint128_type:
8008
118
            return arg_type_category::unsigned_integer;
8009
8010
116
        case arg_type::pointer_type:
8011
116
            return arg_type_category::pointer;
8012
118
        case arg_type::bool_type:
8013
118
            return arg_type_category::boolean;
8014
52
        case arg_type::narrow_character_type:
8015
116
        case arg_type::wide_character_type:
8016
116
        case arg_type::code_point_type:
8017
116
            return arg_type_category::character;
8018
8019
0
        case arg_type::float_type:
8020
118
        case arg_type::double_type:
8021
118
        case arg_type::ldouble_type:
8022
118
        case arg_type::float16_type:
8023
118
        case arg_type::float32_type:
8024
118
        case arg_type::float64_type:
8025
118
        case arg_type::float128_type:
8026
118
        case arg_type::bfloat16_type:
8027
118
            return arg_type_category::floating;
8028
8029
116
        case arg_type::narrow_string_type:
8030
232
        case arg_type::wide_string_type:
8031
348
        case arg_type::string_view_type:
8032
348
            return arg_type_category::string;
8033
8034
0
        case arg_type::custom_type:
8035
0
            return arg_type_category::custom;
8036
8037
0
            SCN_CLANG_PUSH
8038
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
8039
0
        default:
8040
0
            SCN_ENSURE(false);
8041
1.15k
            SCN_UNREACHABLE;
8042
1.15k
            SCN_CLANG_POP
8043
1.15k
    }
8044
8045
1.15k
    SCN_UNREACHABLE;
8046
1.15k
}
8047
8048
template <typename Handler>
8049
class specs_checker : public Handler {
8050
public:
8051
    template <typename H>
8052
    constexpr specs_checker(H&& handler, arg_type type)
8053
38.9k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
8054
38.9k
    {
8055
38.9k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
8056
38.9k
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::detail::arg_type)
Line
Count
Source
8053
25.1k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
8054
25.1k
    {
8055
25.1k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
8056
25.1k
    }
Unexecuted instantiation: impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::detail::arg_type)
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::detail::arg_type)
Line
Count
Source
8053
13.8k
        : Handler(SCN_FWD(handler)), m_arg_type(type)
8054
13.8k
    {
8055
13.8k
        SCN_EXPECT(m_arg_type != arg_type::custom_type);
8056
13.8k
    }
Unexecuted instantiation: impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::detail::arg_type)
8057
8058
    constexpr void on_localized()
8059
1.15k
    {
8060
1.15k
        const auto cat = get_category_for_arg_type(m_arg_type);
8061
1.15k
        if (cat != arg_type_category::integer &&
8062
1.15k
            cat != arg_type_category::unsigned_integer &&
8063
1.15k
            cat != arg_type_category::floating &&
8064
1.15k
            cat != arg_type_category::boolean) {
8065
686
            SCN_UNLIKELY_ATTR
8066
            // clang-format off
8067
686
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
8068
            // clang-format on
8069
686
        }
8070
8071
472
        Handler::on_localized();
8072
472
    }
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >::on_localized()
Line
Count
Source
8059
524
    {
8060
524
        const auto cat = get_category_for_arg_type(m_arg_type);
8061
524
        if (cat != arg_type_category::integer &&
8062
524
            cat != arg_type_category::unsigned_integer &&
8063
524
            cat != arg_type_category::floating &&
8064
524
            cat != arg_type_category::boolean) {
8065
316
            SCN_UNLIKELY_ATTR
8066
            // clang-format off
8067
316
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
8068
            // clang-format on
8069
316
        }
8070
8071
208
        Handler::on_localized();
8072
208
    }
Unexecuted instantiation: impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::on_localized()
impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >::on_localized()
Line
Count
Source
8059
634
    {
8060
634
        const auto cat = get_category_for_arg_type(m_arg_type);
8061
634
        if (cat != arg_type_category::integer &&
8062
634
            cat != arg_type_category::unsigned_integer &&
8063
634
            cat != arg_type_category::floating &&
8064
634
            cat != arg_type_category::boolean) {
8065
370
            SCN_UNLIKELY_ATTR
8066
            // clang-format off
8067
370
            return this->on_error("'L' specifier can only be used with arguments of integer, floating-point, or boolean types");
8068
            // clang-format on
8069
370
        }
8070
8071
264
        Handler::on_localized();
8072
264
    }
Unexecuted instantiation: impl.cpp:scn::v4::detail::specs_checker<scn::v4::(anonymous namespace)::specs_handler<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::on_localized()
8073
8074
private:
8075
    arg_type m_arg_type;
8076
};
8077
8078
template <typename Handler>
8079
constexpr void check_int_type_specs(const format_specs& specs,
8080
                                    Handler&& handler)
8081
7.44k
{
8082
7.44k
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
8083
4.75k
        return handler.on_error("Invalid type specifier for integer type");
8084
4.75k
    }
8085
2.68k
    if (specs.localized) {
8086
172
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
8087
            // clang-format off
8088
20
            handler.on_error("'b'/'B' specifier not supported for localized integers");
8089
            // clang-format on
8090
20
            return;
8091
20
        }
8092
152
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
8093
            // clang-format off
8094
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
8095
            // clang-format on
8096
0
        }
8097
152
    }
8098
2.68k
}
Unexecuted instantiation: void scn::v4::detail::check_int_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
void scn::v4::detail::check_int_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
Line
Count
Source
8081
7.44k
{
8082
7.44k
    if (SCN_UNLIKELY(specs.type > presentation_type::int_hex)) {
8083
4.75k
        return handler.on_error("Invalid type specifier for integer type");
8084
4.75k
    }
8085
2.68k
    if (specs.localized) {
8086
172
        if (SCN_UNLIKELY(specs.type == presentation_type::int_binary)) {
8087
            // clang-format off
8088
20
            handler.on_error("'b'/'B' specifier not supported for localized integers");
8089
            // clang-format on
8090
20
            return;
8091
20
        }
8092
152
        if (SCN_UNLIKELY(specs.type == presentation_type::int_arbitrary_base)) {
8093
            // clang-format off
8094
0
            return handler.on_error("Arbitrary bases not supported for localized integers");
8095
            // clang-format on
8096
0
        }
8097
152
    }
8098
2.68k
}
8099
8100
template <typename Handler>
8101
constexpr void check_char_type_specs(const format_specs& specs,
8102
                                     Handler&& handler)
8103
3.61k
{
8104
3.61k
    if (specs.type > presentation_type::int_hex ||
8105
3.61k
        specs.type == presentation_type::int_arbitrary_base) {
8106
2.36k
        SCN_UNLIKELY_ATTR
8107
2.36k
        return handler.on_error("Invalid type specifier for character type");
8108
2.36k
    }
8109
3.61k
}
Unexecuted instantiation: void scn::v4::detail::check_char_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
void scn::v4::detail::check_char_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
Line
Count
Source
8103
3.61k
{
8104
3.61k
    if (specs.type > presentation_type::int_hex ||
8105
3.61k
        specs.type == presentation_type::int_arbitrary_base) {
8106
2.36k
        SCN_UNLIKELY_ATTR
8107
2.36k
        return handler.on_error("Invalid type specifier for character type");
8108
2.36k
    }
8109
3.61k
}
8110
8111
template <typename Handler>
8112
constexpr void check_code_point_type_specs(const format_specs& specs,
8113
                                           Handler&& handler)
8114
0
{
8115
0
    if (specs.type != presentation_type::none &&
8116
0
        specs.type != presentation_type::character) {
8117
0
        SCN_UNLIKELY_ATTR
8118
0
        return handler.on_error("Invalid type specifier for code point type");
8119
0
    }
8120
0
}
8121
8122
template <typename Handler>
8123
constexpr void check_float_type_specs(const format_specs& specs,
8124
                                      Handler&& handler)
8125
3.72k
{
8126
3.72k
    if (specs.type != presentation_type::none &&
8127
3.72k
        (specs.type < presentation_type::float_hex ||
8128
2.56k
         specs.type > presentation_type::float_general)) {
8129
2.37k
        SCN_UNLIKELY_ATTR
8130
2.37k
        return handler.on_error("Invalid type specifier for float type");
8131
2.37k
    }
8132
3.72k
}
Unexecuted instantiation: void scn::v4::detail::check_float_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
void scn::v4::detail::check_float_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
Line
Count
Source
8125
3.72k
{
8126
3.72k
    if (specs.type != presentation_type::none &&
8127
3.72k
        (specs.type < presentation_type::float_hex ||
8128
2.56k
         specs.type > presentation_type::float_general)) {
8129
2.37k
        SCN_UNLIKELY_ATTR
8130
2.37k
        return handler.on_error("Invalid type specifier for float type");
8131
2.37k
    }
8132
3.72k
}
8133
8134
template <typename Handler>
8135
constexpr void check_string_type_specs(const format_specs& specs,
8136
                                       Handler&& handler)
8137
10.8k
{
8138
10.8k
    if (specs.type == presentation_type::none ||
8139
10.8k
        specs.type == presentation_type::string ||
8140
10.8k
        specs.type == presentation_type::string_set
8141
10.8k
#if !SCN_DISABLE_REGEX
8142
10.8k
        || specs.type == presentation_type::regex ||
8143
10.8k
        specs.type == presentation_type::regex_escaped
8144
10.8k
#endif
8145
10.8k
    ) {
8146
9.52k
        return;
8147
9.52k
    }
8148
1.33k
    if (specs.type == presentation_type::character) {
8149
276
        if (SCN_UNLIKELY(specs.precision == 0)) {
8150
            // clang-format off
8151
12
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
8152
            // clang-format on
8153
12
        }
8154
264
        return;
8155
276
    }
8156
1.05k
    SCN_UNLIKELY_ATTR
8157
1.05k
    handler.on_error("Invalid type specifier for string");
8158
1.05k
}
Unexecuted instantiation: void scn::v4::detail::check_string_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
void scn::v4::detail::check_string_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
Line
Count
Source
8137
10.8k
{
8138
10.8k
    if (specs.type == presentation_type::none ||
8139
10.8k
        specs.type == presentation_type::string ||
8140
10.8k
        specs.type == presentation_type::string_set
8141
10.8k
#if !SCN_DISABLE_REGEX
8142
10.8k
        || specs.type == presentation_type::regex ||
8143
10.8k
        specs.type == presentation_type::regex_escaped
8144
10.8k
#endif
8145
10.8k
    ) {
8146
9.52k
        return;
8147
9.52k
    }
8148
1.33k
    if (specs.type == presentation_type::character) {
8149
276
        if (SCN_UNLIKELY(specs.precision == 0)) {
8150
            // clang-format off
8151
12
            return handler.on_error("'c' type specifier for strings requires the field precision to be specified");
8152
            // clang-format on
8153
12
        }
8154
264
        return;
8155
276
    }
8156
1.05k
    SCN_UNLIKELY_ATTR
8157
1.05k
    handler.on_error("Invalid type specifier for string");
8158
1.05k
}
8159
8160
template <typename Handler>
8161
constexpr void check_pointer_type_specs(const format_specs& specs,
8162
                                        Handler&& handler)
8163
3.61k
{
8164
3.61k
    if (specs.type != presentation_type::none &&
8165
3.61k
        specs.type != presentation_type::pointer) {
8166
2.49k
        SCN_UNLIKELY_ATTR
8167
2.49k
        return handler.on_error("Invalid type specifier for pointer");
8168
2.49k
    }
8169
3.61k
}
Unexecuted instantiation: void scn::v4::detail::check_pointer_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
void scn::v4::detail::check_pointer_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
Line
Count
Source
8163
3.61k
{
8164
3.61k
    if (specs.type != presentation_type::none &&
8165
3.61k
        specs.type != presentation_type::pointer) {
8166
2.49k
        SCN_UNLIKELY_ATTR
8167
2.49k
        return handler.on_error("Invalid type specifier for pointer");
8168
2.49k
    }
8169
3.61k
}
8170
8171
template <typename Handler>
8172
constexpr void check_bool_type_specs(const format_specs& specs,
8173
                                     Handler&& handler)
8174
3.72k
{
8175
3.72k
    if (specs.type != presentation_type::none &&
8176
3.72k
        specs.type != presentation_type::string &&
8177
3.72k
        specs.type != presentation_type::int_generic &&
8178
3.72k
        specs.type != presentation_type::int_hex &&
8179
3.72k
        specs.type != presentation_type::int_binary &&
8180
3.72k
        specs.type != presentation_type::int_unsigned_decimal &&
8181
3.72k
        specs.type != presentation_type::int_octal &&
8182
3.72k
        specs.type != presentation_type::int_decimal) {
8183
2.02k
        SCN_UNLIKELY_ATTR
8184
2.02k
        return handler.on_error("Invalid type specifier for boolean");
8185
2.02k
    }
8186
3.72k
}
Unexecuted instantiation: void scn::v4::detail::check_bool_type_specs<scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&>(scn::v4::detail::format_specs const&, scn::v4::detail::specs_checker<scn::v4::detail::specs_setter>&)
void scn::v4::detail::check_bool_type_specs<scn::v4::impl::reader_error_handler&>(scn::v4::detail::format_specs const&, scn::v4::impl::reader_error_handler&)
Line
Count
Source
8174
3.72k
{
8175
3.72k
    if (specs.type != presentation_type::none &&
8176
3.72k
        specs.type != presentation_type::string &&
8177
3.72k
        specs.type != presentation_type::int_generic &&
8178
3.72k
        specs.type != presentation_type::int_hex &&
8179
3.72k
        specs.type != presentation_type::int_binary &&
8180
3.72k
        specs.type != presentation_type::int_unsigned_decimal &&
8181
3.72k
        specs.type != presentation_type::int_octal &&
8182
3.72k
        specs.type != presentation_type::int_decimal) {
8183
2.02k
        SCN_UNLIKELY_ATTR
8184
2.02k
        return handler.on_error("Invalid type specifier for boolean");
8185
2.02k
    }
8186
3.72k
}
8187
8188
#if !SCN_DISABLE_REGEX
8189
template <typename Handler>
8190
constexpr void check_regex_type_specs(const format_specs& specs,
8191
                                      Handler&& handler)
8192
0
{
8193
0
    if (SCN_UNLIKELY(specs.type == presentation_type::none ||
8194
0
                     specs.charset_string_size == 0)) {
8195
        // clang-format off
8196
0
        return handler.on_error("Regular expression needs to be specified when reading regex_matches");
8197
        // clang-format on
8198
0
    }
8199
0
    if (specs.type == presentation_type::regex ||
8200
0
        specs.type == presentation_type::regex_escaped) {
8201
0
        return;
8202
0
    }
8203
0
    SCN_UNLIKELY_ATTR
8204
0
    handler.on_error("Invalid type specifier for regex_matches");
8205
0
}
8206
#endif
8207
8208
}  // namespace detail
8209
8210
SCN_CLANG_PUSH
8211
SCN_CLANG_IGNORE("-Wdocumentation-unknown-command")
8212
8213
/**
8214
 * \defgroup format-string Format strings
8215
 *
8216
 * \brief Format string description
8217
 *
8218
 * The format string syntax is heavily influenced by {fmt} and
8219
 * `std::format`, and is largely compatible with it. Scanning functions,
8220
 * such as `scn::scan` and
8221
 * `scn::input`, use the format string syntax described in this section.
8222
 *
8223
 * Format strings consist of:
8224
 *
8225
 *  * Replacement fields, which are surrounded by curly braces `{}`.
8226
 *
8227
 *  * Non-whitespace characters (except `{}`; for literal braces, use
8228
 *    `{{` and `}}`), which consume exactly one identical character from the
8229
 *    input
8230
 *
8231
 *  * Whitespace characters, which consume any and all available consecutive
8232
 *    whitespace from the input.
8233
 *
8234
 * Literal characters are matched by code point one-to-one, with no
8235
 * normalization being done.
8236
 * `Ä` (U+00C4, UTF-8 0xc3 0x84) only matches another U+00C4, and not, for
8237
 * example, U+00A8 (DIAERESIS) and U+0041 (LATIN CAPITAL LETTER A).
8238
 *
8239
 * Characters (code points) are considered to be whitespace characters by
8240
 * the Unicode Pattern_White_Space property, as defined by UAX31-R3a.
8241
 * These code points are:
8242
 *
8243
 *  * ASCII whitespace characters ("\t\n\v\f\r ")
8244
 *  * U+0085 (next line)
8245
 *  * U+200E and U+200F (LEFT-TO-RIGHT MARK and RIGHT-TO-LEFT MARK)
8246
 *  * U+2028 and U+2029 (LINE SEPARATOR and PARAGRAPH SEPARATOR)
8247
 *
8248
 * The grammar for a replacement field is as follows:
8249
 *
8250
 * \code
8251
 * replacement-field   ::= '{' [arg-id] [':' format-spec] '}'
8252
 * arg-id              ::= positive-integer
8253
 *
8254
 * format-spec         ::= [fill-and-align]
8255
 *                         [width] [precision]
8256
 *                         ['L'] [type]
8257
 * fill-and-align      ::= [fill] align
8258
 * fill                ::= any character other than
8259
 *                         '{' or '}'
8260
 * align               ::= one of '<' '>' '^'
8261
 * width               ::= positive-integer
8262
 * precision           ::= '.' nonnegative-integer
8263
 * type                ::= 'a' | 'A' | 'b' | 'B' | 'c' | 'd' |
8264
 *                         'e' | 'E' | 'f' | 'F' | 'g' | 'G' |
8265
 *                         'o' | 'p' | 's' | 'x' | 'X' | 'i' | 'u'
8266
 * \endcode
8267
 *
8268
 * \section arg-ids Argument IDs
8269
 *
8270
 * The `arg-id` specifier can be used to index arguments manually.
8271
 * If manual indexing is used, all of the indices in a format string must be
8272
 * stated explicitly. The same `arg-id` can appear in the format string
8273
 * only once, and must refer to a valid argument.
8274
 *
8275
 * \code{.cpp}
8276
 * // Format string equivalent to "{0} to {1}"
8277
 * auto a = scn::scan<int, int>("2 to 300", "{} to {}");
8278
 * // a->values() == (2, 300)
8279
 *
8280
 * // Manual indexing
8281
 * auto b = scn::scan<int, int>("2 to 300", "{1} to {0}");
8282
 * // b->values() == (300, 2)
8283
 *
8284
 * // INVALID:
8285
 * // Automatic and manual indexing is mixed
8286
 * auto c = scn::scan<int, int>("2 to 300", "{} to {0}");
8287
 *
8288
 * // INVALID:
8289
 * // Same argument is referred to multiple times
8290
 * auto d = scn::scan<int, int>("2 to 300", "{0} to {0}");
8291
 *
8292
 * // INVALID:
8293
 * // {2} does not refer to an argument
8294
 * auto e = scn::scan<int, int>("2 to 300", "{0} to {2}");
8295
 * \endcode
8296
 *
8297
 * \section fill-and-align Fill and align
8298
 *
8299
 * Alignment allows for skipping character before and/or after a value.
8300
 * There are three possible values for alignment:
8301
 *
8302
 * <table>
8303
 * <caption id="align-table">
8304
 * Alignment options
8305
 * </caption>
8306
 *
8307
 * <tr><th>Option</th> <th>Meaning</th></tr>
8308
 *
8309
 * <tr>
8310
 * <td>`<`</td>
8311
 * <td>
8312
 * Align the value to the left (skips fill characters after the value)
8313
 * </td>
8314
 * </tr>
8315
 *
8316
 * <tr>
8317
 * <td>`>`</td>
8318
 * <td>
8319
 * Align the value to the right (skips fill characters before the value)
8320
 * </td>
8321
 * </tr>
8322
 *
8323
 * <tr>
8324
 * <td>`^`</td>
8325
 * <td>
8326
 * Align the value to the center
8327
 * (skips fill characters both before and after the value)
8328
 * </td>
8329
 * </tr>
8330
 * </table>
8331
 *
8332
 * The fill character can be any Unicode code point, except for `{` and `}`.
8333
 * The default fill is the space character `' '`.
8334
 *
8335
 * For format type specifiers other than `c` (default for `char` and `wchar_t`,
8336
 * available for `string` and `string_view`), `[...]`, and the regex `/.../`,
8337
 * the default alignment is `>`.
8338
 * Otherwise, the default alignment is `<`.
8339
 *
8340
 * In addition to the skipping of fill characters,
8341
 * for format type specifiers with the `>` default alignment,
8342
 * preceding whitespace is automatically skipped.
8343
 * This preceding whitespace isn't counted as part of the field width,
8344
 * as described below.
8345
 *
8346
 * The number of fill characters consumed can be controlled with the width and
8347
 * precision specifiers.
8348
 *
8349
 * \section width Width
8350
 *
8351
 * Width specifies the minimum number of characters that will be read from
8352
 * the source range. It can be any unsigned integer. Any fill characters skipped
8353
 * are included in the width
8354
 *
8355
 * For the purposes of width calculation, the same algorithm is used that in
8356
 * {fmt}. Every code point has a width of one, except the following ones
8357
 * have a width of 2:
8358
 *
8359
 * * any code point with the East_Asian_Width="W" or East_Asian_Width="F"
8360
 *   Derived Extracted Property as described by UAX#44
8361
 * * U+4DC0 – U+4DFF (Yijing Hexagram Symbols)
8362
 * * U+1F300 – U+1F5FF (Miscellaneous Symbols and Pictographs)
8363
 * * U+1F900 – U+1F9FF (Supplemental Symbols and Pictographs)
8364
 *
8365
 * \section precision Precision
8366
 *
8367
 * Precision specifies the maximum number of characters that will be read from
8368
 * the source range. The method for counting characters is the same as above,
8369
 * with the width field.
8370
 *
8371
 * \section localized Localized
8372
 *
8373
 * The `L` flag enables localized scanning.
8374
 * Its effects are different for each type it is used with:
8375
 *
8376
 *  * For integers, it enables locale-specific thousands separators
8377
 *  * For floating-point numbers, it enables locale-specific thousands and
8378
 *    radix (decimal) separators
8379
 *  * For booleans, it enables locale-specific textual representations (for
8380
 *    `true` and `false`)
8381
 *  * For other types, it has no effect
8382
 *
8383
 * \section type Type specifier
8384
 *
8385
 * The type specifier determines how the data is to be scanned.
8386
 * The type of the argument to be scanned determines what flags are valid.
8387
 *
8388
 * \subsection type-string Type specifier: strings
8389
 *
8390
 * <table>
8391
 * <caption id="type-string-table">
8392
 * String types (`std::basic_string` and `std::basic_string_view`)
8393
 * </caption>
8394
 * <tr><th>Type</th> <th>Meaning</th></tr>
8395
 * <tr>
8396
 * <td>none, `s`</td>
8397
 * <td>
8398
 * Copies from the input until a whitespace character is encountered, or,
8399
 * if using the `<` (left) or `^` (center) alignment,
8400
 * a fill character is encountered.
8401
 * </td>
8402
 * </tr>
8403
 * <tr>
8404
 * <td>`c`</td>
8405
 * <td>
8406
 * Copies from the input until the field width is exhausted.
8407
 * Doesn't skip preceding whitespace.
8408
 * Errors if no field precision is provided.
8409
 * </td>
8410
 * </tr>
8411
 * <tr>
8412
 * <td>`[...]`</td>
8413
 * <td>
8414
 * Character set matching: copies from the input until a character not specified
8415
 * in the set is encountered. Character ranges can be specified with `-`, and
8416
 * the entire selection can be inverted with a prefix `^`. Matches and supports
8417
 * arbitrary Unicode code points.
8418
 * Doesn't skip preceding whitespace.
8419
 * </td>
8420
 * </tr>
8421
 * <tr>
8422
 * <td>`/<regex>/<flags>`</td>
8423
 * <td>
8424
 * Regular expression matching: copies from the input until the input does not
8425
 * match the regex.
8426
 * Doesn't skip preceding whitespace.
8427
 * \see regex
8428
 * </td>
8429
 * </tr>
8430
 * </table>
8431
 *
8432
 * \note `std::basic_string_view` can only be scanned if the source is
8433
 * contiguous.
8434
 *
8435
 * \subsection type-int Type specifier: integers
8436
 *
8437
 * Integer values are scanned as if by using `std::from_chars`,
8438
 * except a positive `+` sign and a base prefix (like `0x`) are always
8439
 * allowed to be present.
8440
 *
8441
 * <table>
8442
 * <caption id="type-int-table">
8443
 * Integer types (`signed` and `unsigned` variants of `char`, `short`,
8444
 * `int`, `long`, and `long long`)
8445
 * </caption>
8446
 * <tr><th>Type</th> <th>Meaning</th></tr>
8447
 * <tr>
8448
 * <td>`b`, `B`</td>
8449
 * <td>
8450
 * `std::from_chars` with base `2`. The base prefix is `0b` or `0B`.
8451
 * </td>
8452
 * </tr>
8453
 * <tr>
8454
 * <td>`o`, `O`</td>
8455
 * <td>
8456
 * `std::from_chars` with base `8`. The base prefix is `0o` or `0O`, or just
8457
 * `0`.
8458
 * </td>
8459
 * </tr>
8460
 * <tr>
8461
 * <td>`x`, `X`</td>
8462
 * <td>
8463
 * `std::from_chars` with base `16`. The base prefix is `0x` or `0X`.
8464
 * </td>
8465
 * </tr>
8466
 * <tr>
8467
 * <td>`d`</td>
8468
 * <td>
8469
 * `std::from_chars` with base `10`. No base prefix allowed.
8470
 * </td>
8471
 * </tr>
8472
 * <tr>
8473
 * <td>`u`</td>
8474
 * <td>
8475
 * `std::from_chars` with base `10`. No base prefix or `-` sign allowed.
8476
 * </td>
8477
 * </tr>
8478
 * <tr>
8479
 * <td>`i`</td>
8480
 * <td>
8481
 * Detect the base from a possible prefix, defaulting to decimal (base-10).
8482
 * </td>
8483
 * </tr>
8484
 * <tr>
8485
 * <td>`rXX` (where XX = [2, 36])</td>
8486
 * <td>
8487
 * Custom base, without a base prefix (r stands for radix).
8488
 * </td>
8489
 * </tr>
8490
 * <tr>
8491
 * <td>`c`</td>
8492
 * <td>
8493
 * Copies a character (code unit) from the input.
8494
 * </td>
8495
 * </tr>
8496
 * <tr>
8497
 * <td>none</td>
8498
 * <td>
8499
 * Same as `d`.
8500
 * </td>
8501
 * </tr>
8502
 * </table>
8503
 *
8504
 * \subsection type-char Type specifier: characters
8505
 *
8506
 * <table>
8507
 * <caption id="type-char-table">
8508
 * Character types (`char` and `wchar_t`), and code points (`char32_t`)
8509
 * </caption>
8510
 * <tr><th>Type</th> <th>Meaning</th></tr>
8511
 * <tr>
8512
 * <td>none, `c`</td>
8513
 * <td>
8514
 * Copies a character (code point for `char32_t`, code unit otherwise) from the
8515
 * input.
8516
 * </td>
8517
 * </tr>
8518
 * <tr>
8519
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
8520
 * <td>
8521
 * Same as for integers, see above \ref type-int. Not allowed for `char32_t`.
8522
 * </td>
8523
 * </tr>
8524
 * </table>
8525
 *
8526
 * \note When scanning characters (`char` and `wchar_t`), the source range is
8527
 * read a single code unit at a time, and encoding is not respected.
8528
 *
8529
 * \subsection type-float Type specifier: floating-point values
8530
 *
8531
 * Floating-point values are scanned as if by using `std::from_chars`,
8532
 * except a positive `+` sign and a base prefix (like `0x`) are always
8533
 * allowed to be present.
8534
 *
8535
 * <table>
8536
 * <caption id="type-float-table">
8537
 * Floating-point types (`float`, `double`, and `long double`)
8538
 * </caption>
8539
 * <tr><th>Type</th> <th>Meaning</th></tr>
8540
 * <tr>
8541
 * <td>`a`, `A`</td>
8542
 * <td>
8543
 * `std::from_chars` with `std::chars_format::hex`.
8544
 * Prefix `0x`/`0X` is allowed.
8545
 * </td>
8546
 * </tr>
8547
 * <tr>
8548
 * <td>`e`, `E`</td>
8549
 * <td>
8550
 * `std::from_chars` with `std::chars_format::scientific`.
8551
 * </td>
8552
 * </tr>
8553
 * <tr>
8554
 * <td>`f`, `F`</td>
8555
 * <td>
8556
 * `std::from_chars` with `std::chars_format::fixed`.
8557
 * </td>
8558
 * </tr>
8559
 * <tr>
8560
 * <td>`g`, `G`</td>
8561
 * <td>
8562
 * `std::from_chars` with `std::chars_format::general`.
8563
 * </td>
8564
 * </tr>
8565
 * <tr>
8566
 * <td>none</td>
8567
 * <td>
8568
 * `std::from_chars` with `std::chars_format::general | std::chars_format::hex`.
8569
 * Prefix `0x`/`0X` is allowed.
8570
 * </td>
8571
 * </tr>
8572
 * </table>
8573
 *
8574
 * \subsection type-bool Type specifier: booleans
8575
 *
8576
 * <table>
8577
 * <caption id="type-bool-table">
8578
 * `bool`
8579
 * </caption>
8580
 * <tr><th>Type</th> <th>Meaning</th></tr>
8581
 * <tr>
8582
 * <td>`s`</td>
8583
 * <td>
8584
 * Allows for the textual representation (`true` or `false`).
8585
 * </td>
8586
 * </tr>
8587
 * <tr>
8588
 * <td>`b`, `B`, `d`, `i`, `o`, `O`, `u`, `x`, `X`</td>
8589
 * <td>
8590
 * Allows for the integral/numeric representation (`0` or `1`).
8591
 * </td>
8592
 * </tr>
8593
 * <tr>
8594
 * <td>none</td>
8595
 * <td>
8596
 * Allows for both the textual and the integral/numeric representation.
8597
 * </td>
8598
 * </tr>
8599
 * </table>
8600
 */
8601
8602
SCN_CLANG_POP  // -Wdocumentation-unknown-command
8603
8604
    namespace detail
8605
{
8606
}
8607
8608
namespace detail {
8609
/**
8610
 * A runtime format string
8611
 *
8612
 * \ingroup format-string
8613
 */
8614
template <typename CharT>
8615
struct basic_runtime_format_string {
8616
151k
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v4::detail::basic_runtime_format_string<char>::basic_runtime_format_string(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
8616
50.5k
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
scn::v4::detail::basic_runtime_format_string<wchar_t>::basic_runtime_format_string(std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >)
Line
Count
Source
8616
101k
    basic_runtime_format_string(std::basic_string_view<CharT> s) : str(s) {}
8617
8618
    basic_runtime_format_string(const basic_runtime_format_string&) = delete;
8619
    basic_runtime_format_string(basic_runtime_format_string&&) = delete;
8620
    basic_runtime_format_string& operator=(const basic_runtime_format_string&) =
8621
        delete;
8622
    basic_runtime_format_string& operator=(basic_runtime_format_string&&) =
8623
        delete;
8624
    ~basic_runtime_format_string() = default;
8625
8626
    std::basic_string_view<CharT> str;
8627
};
8628
}  // namespace detail
8629
8630
/**
8631
 * Create a runtime format string
8632
 *
8633
 * Can be used to avoid compile-time format string checking
8634
 *
8635
 * \ingroup format-string
8636
 */
8637
inline detail::basic_runtime_format_string<char> runtime_format(
8638
    std::string_view s)
8639
50.5k
{
8640
50.5k
    return s;
8641
50.5k
}
8642
inline detail::basic_runtime_format_string<wchar_t> runtime_format(
8643
    std::wstring_view s)
8644
101k
{
8645
101k
    return s;
8646
101k
}
8647
8648
namespace detail {
8649
struct compile_string {};
8650
8651
template <typename Str>
8652
inline constexpr bool is_compile_string_v =
8653
    std::is_base_of_v<compile_string, Str>;
8654
8655
template <typename Scanner, typename ParseCtx>
8656
using dt_scanner_parse =
8657
    decltype(SCN_DECLVAL(Scanner&).parse(SCN_DECLVAL(ParseCtx&)));
8658
template <typename Scanner, typename T, typename Ctx>
8659
using dt_scanner_scan = decltype(SCN_DECLVAL(const Scanner&)
8660
                                     .scan(SCN_DECLVAL(T&), SCN_DECLVAL(Ctx&)));
8661
8662
template <typename Scanner, typename T, typename Ctx, typename ParseCtx>
8663
constexpr typename ParseCtx::iterator parse_format_specs_impl(
8664
    ParseCtx& parse_ctx)
8665
{
8666
    static_assert(
8667
        std::is_default_constructible_v<Scanner>,
8668
        "Specializations of scn::scanner must be default constructible");
8669
    static_assert(mp_valid<dt_scanner_parse, Scanner, ParseCtx>::value,
8670
                  "Specializations of scn::scanner must have a "
8671
                  "parse(ParseContext&) member function.");
8672
    static_assert(
8673
        std::is_same_v<mp_eval_or<void, dt_scanner_parse, Scanner, ParseCtx>,
8674
                       typename ParseCtx::iterator>,
8675
        "scn::scanner::parse(ParseContext&) must return "
8676
        "ParseContext::iterator. To report an error from scanner::parse, "
8677
        "either throw an exception derived from scn::scan_format_string_error, "
8678
        "or call ParseContext::on_error.");
8679
    static_assert(mp_valid<dt_scanner_scan, Scanner, T, Ctx>::value,
8680
                  "Specializations of scn::scanner must have a "
8681
                  "scan(T&, Context&) const member function.");
8682
    static_assert(
8683
        std::is_same_v<mp_eval_or<void, dt_scanner_scan, Scanner, T, Ctx>,
8684
                       scan_expected<typename Ctx::iterator>>,
8685
        "scn::scanner::scan(T&, Context&) must return "
8686
        "scan_expected<Context::iterator>.");
8687
8688
    auto s = Scanner{};
8689
    return s.parse(parse_ctx);
8690
}
8691
8692
template <typename T, typename Ctx, typename ParseCtx>
8693
constexpr typename ParseCtx::iterator parse_format_specs(ParseCtx& parse_ctx)
8694
{
8695
    using char_type = typename Ctx::char_type;
8696
    using map_result =
8697
        std::remove_reference_t<decltype(arg_mapper<char_type>().map(
8698
            SCN_DECLVAL(T&)))>;
8699
    if constexpr (std::is_base_of_v<unscannable, map_result>) {
8700
        // Error will be reported by static_assert in make_value(),
8701
        // let's not muddy the compiler error by making more of them.
8702
        return parse_ctx.begin();
8703
    }
8704
    else {
8705
        using mapped_type =
8706
            std::conditional_t<arg_type_constant<T, char_type>::value !=
8707
                                   arg_type::custom_type,
8708
                               map_result, T>;
8709
        using scanner_type = typename Ctx::template scanner_type<mapped_type>;
8710
        return parse_format_specs_impl<scanner_type, T, Ctx, ParseCtx>(
8711
            parse_ctx);
8712
    }
8713
}
8714
8715
template <typename CharT, typename Source, typename... Args>
8716
class format_string_checker {
8717
public:
8718
    using parse_context_type = compile_parse_context<CharT>;
8719
    static constexpr auto num_args = sizeof...(Args);
8720
8721
    explicit constexpr format_string_checker(
8722
        std::basic_string_view<CharT> format_str)
8723
        : m_parse_context(source_tag<Source>, format_str, num_args, m_types),
8724
          m_parse_funcs{&parse_format_specs<Args,
8725
                                            default_context<CharT>,
8726
                                            parse_context_type>...},
8727
          m_types{arg_type_constant<Args, CharT>::value...}
8728
    {
8729
    }
8730
8731
    constexpr void on_literal_text(const CharT* begin, const CharT* end)
8732
    {
8733
        // TODO: Do we want to validate Unicode in format strings?
8734
        // We're dealing with text, so we probably do.
8735
        // We could do codeunit-to-codeunit matching,
8736
        // but that could get messy wrt. whitespace matching.
8737
        // It's simpler to not allow nonsense.
8738
        while (begin != end) {
8739
            const auto len = code_point_length_by_starting_code_unit(*begin);
8740
            if (SCN_UNLIKELY(len == 0 ||
8741
                             static_cast<size_t>(end - begin) < len)) {
8742
                return on_error("Invalid encoding in format string");
8743
            }
8744
8745
            const auto cp = decode_code_point_exhaustive(
8746
                std::basic_string_view<CharT>{begin, len});
8747
            if (SCN_UNLIKELY(cp >= invalid_code_point)) {
8748
                return on_error("Invalid encoding in format string");
8749
            }
8750
8751
            begin += len;
8752
        }
8753
    }
8754
8755
    constexpr auto on_arg_id()
8756
    {
8757
        return m_parse_context.next_arg_id();
8758
    }
8759
    constexpr auto on_arg_id(std::size_t id)
8760
    {
8761
        m_parse_context.check_arg_id(id);
8762
        return id;
8763
    }
8764
8765
    constexpr void on_replacement_field(size_t id, const CharT* begin)
8766
    {
8767
        set_arg_as_read(id);
8768
8769
        auto type = m_types[id];
8770
        check_arg_can_be_read(type);
8771
8772
        if (type == arg_type::custom_type && id < num_args) {
8773
            // Only call scanner::parse to check for errors,
8774
            // we're discarding the result.
8775
            // The advance_to dance is done to point the parse context to the
8776
            // character after the `{`; right now, it points to that
8777
            const auto beg = begin;
8778
            m_parse_context.advance_to(begin);
8779
            m_parse_funcs[id](m_parse_context);
8780
            m_parse_context.advance_to(beg);
8781
        }
8782
    }
8783
8784
    constexpr const CharT* on_format_specs(std::size_t id,
8785
                                           const CharT* begin,
8786
                                           const CharT*)
8787
    {
8788
        set_arg_as_read(id);
8789
        check_arg_can_be_read(m_types[id]);
8790
8791
        m_parse_context.advance_to(begin);
8792
        return id < num_args ? m_parse_funcs[id](m_parse_context) : begin;
8793
    }
8794
8795
    constexpr void check_args_exhausted()
8796
    {
8797
        if constexpr (num_args == 0) {
8798
            return;
8799
        }
8800
        for (auto is_set : m_visited_args) {
8801
            if (!is_set) {
8802
                return on_error("Argument list not exhausted");
8803
            }
8804
        }
8805
    }
8806
8807
    void on_error(const char* msg)
8808
    {
8809
        SCN_UNLIKELY_ATTR
8810
        m_parse_context.on_error(msg);
8811
    }
8812
8813
    // Only to satisfy the concept and eliminate compiler errors,
8814
    // because errors are reported by failing to compile on_error above
8815
    // (it's not constexpr)
8816
    constexpr scan_expected<void> get_error() const
8817
    {
8818
        return {};
8819
    }
8820
8821
private:
8822
    constexpr void set_arg_as_read(size_t id)
8823
    {
8824
        if (id >= num_args) {
8825
            return on_error("Invalid out-of-range argument ID");
8826
        }
8827
        if (m_visited_args[id]) {
8828
            return on_error("Argument with this ID already scanned");
8829
        }
8830
        m_visited_args[id] = true;
8831
    }
8832
8833
    constexpr void check_arg_can_be_read(arg_type type)
8834
    {
8835
        if (type == arg_type::string_view_type &&
8836
            !m_parse_context.is_source_contiguous()) {
8837
            // clang-format off
8838
            return on_error("Cannot read a string_view from a non-contiguous source");
8839
            // clang-format on
8840
        }
8841
        if (type == arg_type::string_view_type &&
8842
            !m_parse_context.is_source_borrowed()) {
8843
            // clang-format off
8844
            return on_error("Cannot read a string_view from a non-borrowed source");
8845
            // clang-format on
8846
        }
8847
    }
8848
8849
    using parse_func = const CharT* (*)(parse_context_type&);
8850
8851
    parse_context_type m_parse_context;
8852
    parse_func m_parse_funcs[num_args > 0 ? num_args : 1];
8853
    arg_type m_types[num_args > 0 ? num_args : 1];
8854
    bool m_visited_args[num_args > 0 ? num_args : 1] = {false};
8855
};
8856
8857
template <typename Source, typename... Args, typename Str>
8858
constexpr auto check_format_string(const Str&)
8859
    -> std::enable_if_t<!is_compile_string_v<Str>>
8860
0
{
8861
    // TODO: SCN_ENFORE_COMPILE_STRING?
8862
#if 0  // SCN_ENFORE_COMPILE_STRING
8863
    static_assert(dependent_false<Str>::value,
8864
              "SCN_ENFORCE_COMPILE_STRING requires all format "
8865
              "strings to use SCN_STRING.");
8866
#endif
8867
0
}
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [9]>(char const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [3]>), void>::type scn::v4::detail::check_format_string<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double, char [3]>(char const (&) [3])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [19]>(char const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [9]>(char const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<char [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char [19]>(char const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [9]>(wchar_t const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [19]>(wchar_t const (&) [19])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [9]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [9]>(wchar_t const (&) [9])
Unexecuted instantiation: std::__1::enable_if<!(is_compile_string_v<wchar_t [19]>), void>::type scn::v4::detail::check_format_string<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, wchar_t [19]>(wchar_t const (&) [19])
8868
8869
template <typename Source, typename... Args, typename Str>
8870
constexpr auto check_format_string(Str format_str)
8871
    -> std::enable_if_t<is_compile_string_v<Str>>
8872
{
8873
    using char_type = typename Str::char_type;
8874
8875
    SCN_GCC_PUSH
8876
    SCN_GCC_IGNORE("-Wconversion")
8877
    constexpr auto s = std::basic_string_view<char_type>{format_str};
8878
    SCN_GCC_POP
8879
8880
    using checker = format_string_checker<char_type, Source, Args...>;
8881
    constexpr bool invalid_format =
8882
        (parse_format_string<true>(s, checker(s)), true);
8883
    SCN_UNUSED(invalid_format);
8884
}
8885
8886
template <typename CharT, std::size_t N>
8887
constexpr std::basic_string_view<CharT> compile_string_to_view(
8888
    const CharT (&s)[N])
8889
{
8890
    return {s, N - 1};
8891
}
8892
template <typename CharT>
8893
constexpr std::basic_string_view<CharT> compile_string_to_view(
8894
    std::basic_string_view<CharT> s)
8895
{
8896
    return s;
8897
}
8898
}  // namespace detail
8899
8900
#define SCN_STRING_IMPL(s, base, expl)                                       \
8901
    [] {                                                                     \
8902
        struct SCN_COMPILE_STRING : base {                                   \
8903
            using char_type = ::scn::detail::remove_cvref_t<decltype(s[0])>; \
8904
            SCN_MAYBE_UNUSED constexpr expl                                  \
8905
            operator ::std::basic_string_view<char_type>() const             \
8906
            {                                                                \
8907
                return ::scn::detail::compile_string_to_view<char_type>(s);  \
8908
            }                                                                \
8909
        };                                                                   \
8910
        return SCN_COMPILE_STRING{};                                         \
8911
    }()
8912
8913
#define SCN_STRING(s) SCN_STRING_IMPL(s, ::scn::detail::compile_string, )
8914
8915
/**
8916
 * Compile-time format string
8917
 *
8918
 * \ingroup format-string
8919
 */
8920
template <typename CharT, typename Source, typename... Args>
8921
class basic_scan_format_string {
8922
public:
8923
    SCN_CLANG_PUSH
8924
#if SCN_CLANG >= SCN_COMPILER(10, 0, 0)
8925
    SCN_CLANG_IGNORE("-Wc++20-compat")  // false positive about consteval
8926
#endif
8927
    template <
8928
        typename S,
8929
        std::enable_if_t<
8930
            std::is_convertible_v<const S&, std::basic_string_view<CharT>> &&
8931
            detail::is_not_self<S, basic_scan_format_string>>* = nullptr>
8932
0
    SCN_CONSTEVAL basic_scan_format_string(const S& s) : m_str(s)
8933
0
    {
8934
#if SCN_HAS_CONSTEVAL
8935
        using checker = detail::format_string_checker<CharT, Source, Args...>;
8936
        const auto e = detail::parse_format_string<true>(m_str, checker(s));
8937
        SCN_UNUSED(e);
8938
#else
8939
0
        detail::check_format_string<Source, Args...>(s);
8940
0
#endif
8941
0
    }
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA9_cTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIcSF_EEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEJdEEC2IA3_cTnPNS2_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS2_17basic_string_viewIcS5_EEEsr6detailE11is_not_selfISE_SA_EEvE4typeELPv0EEESG_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA19_cTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIcSF_EEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA9_cTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIcSC_EEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIcNS0_6ranges6detail9subrange_8subrangeIPKcS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA19_cTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIcSC_EEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA9_wTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIwNSE_IwEEEEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS2_18default_sentinel_tEEEJNSt3__112basic_stringIcNSC_11char_traitsIcEENSC_9allocatorIcEEEEEEC2IA19_wTnPNSC_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NSC_17basic_string_viewIwNSE_IwEEEEEsr6detailE11is_not_selfISN_SJ_EEvE4typeELPv0EEESP_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeIPKwS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA9_wTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIwNSB_IwEEEEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
Unexecuted instantiation: _ZN3scn2v424basic_scan_format_stringIwNS0_6ranges6detail9subrange_8subrangeIPKwS7_EEJNSt3__112basic_stringIcNS9_11char_traitsIcEENS9_9allocatorIcEEEEEEC2IA19_wTnPNS9_9enable_ifIXaasr3stdE16is_convertible_vIRKT_NS9_17basic_string_viewIwNSB_IwEEEEEsr6detailE11is_not_selfISK_SG_EEvE4typeELPv0EEESM_
8942
    SCN_CLANG_POP
8943
8944
    template <
8945
        typename OtherSource,
8946
        std::enable_if_t<std::is_same_v<detail::remove_cvref_t<Source>,
8947
                                        detail::remove_cvref_t<OtherSource>> &&
8948
                         ranges::borrowed_range<Source> ==
8949
                             ranges::borrowed_range<OtherSource>>* = nullptr>
8950
    constexpr basic_scan_format_string(
8951
        const basic_scan_format_string<CharT, OtherSource, Args...>& other)
8952
        : m_str(other.get())
8953
    {
8954
    }
8955
8956
    basic_scan_format_string(detail::basic_runtime_format_string<CharT> r)
8957
151k
        : m_str(r.str)
8958
151k
    {
8959
151k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8957
5.61k
        : m_str(r.str)
8958
5.61k
    {
8959
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, int>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8957
5.61k
        : m_str(r.str)
8958
5.61k
    {
8959
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned int>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8957
5.61k
        : m_str(r.str)
8958
5.61k
    {
8959
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, double>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8957
5.61k
        : m_str(r.str)
8958
5.61k
    {
8959
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8957
5.61k
        : m_str(r.str)
8958
5.61k
    {
8959
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void*>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8957
5.61k
        : m_str(r.str)
8958
5.61k
    {
8959
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8957
5.61k
        : m_str(r.str)
8958
5.61k
    {
8959
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8957
5.61k
        : m_str(r.str)
8958
5.61k
    {
8959
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<char>)
Line
Count
Source
8957
5.61k
        : m_str(r.str)
8958
5.61k
    {
8959
5.61k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8957
11.2k
        : m_str(r.str)
8958
11.2k
    {
8959
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, int>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8957
11.2k
        : m_str(r.str)
8958
11.2k
    {
8959
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, unsigned int>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8957
11.2k
        : m_str(r.str)
8958
11.2k
    {
8959
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, double>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8957
11.2k
        : m_str(r.str)
8958
11.2k
    {
8959
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, bool>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8957
11.2k
        : m_str(r.str)
8958
11.2k
    {
8959
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void*>::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8957
11.2k
        : m_str(r.str)
8958
11.2k
    {
8959
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8957
11.2k
        : m_str(r.str)
8958
11.2k
    {
8959
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8957
11.2k
        : m_str(r.str)
8958
11.2k
    {
8959
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::basic_scan_format_string(scn::v4::detail::basic_runtime_format_string<wchar_t>)
Line
Count
Source
8957
11.2k
        : m_str(r.str)
8958
11.2k
    {
8959
11.2k
    }
8960
8961
    constexpr operator std::basic_string_view<CharT>() const
8962
151k
    {
8963
151k
        return m_str;
8964
151k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8962
5.61k
    {
8963
5.61k
        return m_str;
8964
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8962
5.61k
    {
8963
5.61k
        return m_str;
8964
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned int>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8962
5.61k
    {
8963
5.61k
        return m_str;
8964
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8962
5.61k
    {
8963
5.61k
        return m_str;
8964
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8962
5.61k
    {
8963
5.61k
        return m_str;
8964
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void*>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8962
5.61k
    {
8963
5.61k
        return m_str;
8964
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8962
5.61k
    {
8963
5.61k
        return m_str;
8964
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8962
5.61k
    {
8963
5.61k
        return m_str;
8964
5.61k
    }
scn::v4::basic_scan_format_string<char, std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Line
Count
Source
8962
5.61k
    {
8963
5.61k
        return m_str;
8964
5.61k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8962
11.2k
    {
8963
11.2k
        return m_str;
8964
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8962
11.2k
    {
8963
11.2k
        return m_str;
8964
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, unsigned int>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8962
11.2k
    {
8963
11.2k
        return m_str;
8964
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, double>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8962
11.2k
    {
8963
11.2k
        return m_str;
8964
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, bool>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8962
11.2k
    {
8963
11.2k
        return m_str;
8964
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void*>::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8962
11.2k
    {
8963
11.2k
        return m_str;
8964
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8962
11.2k
    {
8963
11.2k
        return m_str;
8964
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8962
11.2k
    {
8963
11.2k
        return m_str;
8964
11.2k
    }
scn::v4::basic_scan_format_string<wchar_t, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Line
Count
Source
8962
11.2k
    {
8963
11.2k
        return m_str;
8964
11.2k
    }
Unexecuted instantiation: scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<char, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double>::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<char, scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<char, std::__1::char_traits<char> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
Unexecuted instantiation: scn::v4::basic_scan_format_string<wchar_t, scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::operator std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >() const
8965
    constexpr std::basic_string_view<CharT> get() const
8966
    {
8967
        return m_str;
8968
    }
8969
8970
private:
8971
    std::basic_string_view<CharT> m_str;
8972
};
8973
8974
namespace detail {
8975
class locale_ref {
8976
#if !SCN_DISABLE_LOCALE
8977
public:
8978
88.3k
    constexpr locale_ref() = default;
8979
8980
    template <typename Locale>
8981
    explicit locale_ref(const Locale& loc);
8982
8983
    constexpr explicit operator bool() const noexcept
8984
0
    {
8985
0
        return m_locale != nullptr;
8986
0
    }
8987
8988
    template <typename Locale>
8989
    Locale get() const;
8990
8991
private:
8992
    const void* m_locale{nullptr};
8993
#else
8994
public:
8995
    constexpr locale_ref() = default;
8996
8997
    template <typename T>
8998
    constexpr explicit locale_ref(T&&)
8999
    {
9000
    }
9001
9002
    constexpr explicit operator bool() const noexcept
9003
    {
9004
        return true;
9005
    }
9006
#endif
9007
};
9008
}  // namespace detail
9009
9010
/////////////////////////////////////////////////////////////////
9011
// scan_context
9012
/////////////////////////////////////////////////////////////////
9013
9014
namespace detail {
9015
template <typename I>
9016
using apply_cmp_with_nullptr = decltype(SCN_DECLVAL(const I&) == nullptr);
9017
template <typename I>
9018
inline constexpr bool is_comparable_with_nullptr =
9019
    mp_valid_v<apply_cmp_with_nullptr, I>;
9020
9021
template <typename Args>
9022
class scan_context_base {
9023
public:
9024
    /// Get argument at index `id`
9025
    constexpr auto arg(size_t id) const noexcept
9026
99.8k
    {
9027
99.8k
        return m_args.get(id);
9028
99.8k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::arg(unsigned long) const
Line
Count
Source
9026
30.8k
    {
9027
30.8k
        return m_args.get(id);
9028
30.8k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::arg(unsigned long) const
Line
Count
Source
9026
68.9k
    {
9027
68.9k
        return m_args.get(id);
9028
68.9k
    }
9029
9030
    constexpr const Args& args() const
9031
60.8k
    {
9032
60.8k
        return m_args;
9033
60.8k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::args() const
Line
Count
Source
9031
5.79k
    {
9032
5.79k
        return m_args;
9033
5.79k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::args() const
Line
Count
Source
9031
55.0k
    {
9032
55.0k
        return m_args;
9033
55.0k
    }
9034
9035
    SCN_NODISCARD constexpr locale_ref locale() const
9036
94.0k
    {
9037
94.0k
        return m_locale;
9038
94.0k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::locale() const
Line
Count
Source
9036
27.7k
    {
9037
27.7k
        return m_locale;
9038
27.7k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::locale() const
Line
Count
Source
9036
66.3k
    {
9037
66.3k
        return m_locale;
9038
66.3k
    }
9039
9040
protected:
9041
    scan_context_base(Args args, locale_ref loc) noexcept
9042
151k
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
9043
151k
    {
9044
151k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >::scan_context_base(scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::detail::locale_ref)
Line
Count
Source
9042
50.5k
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
9043
50.5k
    {
9044
50.5k
    }
scn::v4::detail::scan_context_base<scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >::scan_context_base(scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::detail::locale_ref)
Line
Count
Source
9042
101k
        : m_args(SCN_MOVE(args)), m_locale(SCN_MOVE(loc))
9043
101k
    {
9044
101k
    }
9045
9046
    Args m_args;
9047
    locale_ref m_locale;
9048
};
9049
}  // namespace detail
9050
9051
/**
9052
 * \defgroup ctx Contexts and scanners
9053
 *
9054
 * \brief Lower-level APIs used for scanning individual values
9055
 *
9056
 * \section user-defined Scanning user-defined types
9057
 *
9058
 * User-defined types can be scanned by specializing the class template
9059
 * `scn::scanner`.
9060
 *
9061
 * \code{.cpp}
9062
 * struct mytype {
9063
 *   int key;
9064
 *   std::string value;
9065
 * };
9066
 *
9067
 * template <>
9068
 * struct scn::scanner<mytype> {
9069
 *   template <typename ParseContext>
9070
 *   constexpr auto parse(ParseCtx& pctx)
9071
 *     -> typename ParseContext::iterator {
9072
 *     // parse() implementation just returning begin():
9073
 *     // only permits empty format specifiers
9074
 *     return pctx.begin();
9075
 *   }
9076
 *
9077
 *   template <typename Context>
9078
 *   auto scan(mytype& val, Context& ctx)
9079
 *     -> scan_expected<typename Context::iterator> {
9080
 *     return scn::scan<int, std::string>(ctx.range(), "{}: {}")
9081
 *       .transform([&](auto result) {
9082
 *         std::tie(val.key, val.value) = std::move(result->values());
9083
 *         return result.begin();
9084
 *       });
9085
 *   }
9086
 * };
9087
 * \endcode
9088
 *
9089
 * See also
9090
 * \ref g-usertypes
9091
 */
9092
9093
/**
9094
 * Scanning context.
9095
 *
9096
 * \ingroup ctx
9097
 */
9098
template <typename Range, typename CharT>
9099
class basic_scan_context
9100
    : public detail::scan_context_base<
9101
          basic_scan_args<basic_scan_context<Range, CharT>>> {
9102
    using base = detail::scan_context_base<basic_scan_args<basic_scan_context>>;
9103
9104
    using args_type = basic_scan_args<basic_scan_context>;
9105
    using arg_type = basic_scan_arg<basic_scan_context>;
9106
9107
public:
9108
    /// Character type of the input
9109
    using char_type = CharT;
9110
    using range_type = std::conditional_t<
9111
        std::is_same_v<Range, detail::buffer_range_tag>,
9112
        typename detail::basic_scan_buffer<char_type>::range_type,
9113
        Range>;
9114
    using iterator = ranges::iterator_t<range_type>;
9115
    using sentinel = ranges::sentinel_t<range_type>;
9116
    using parse_context_type = basic_scan_parse_context<char_type>;
9117
9118
    /**
9119
     * The scanner type associated with this scanning context.
9120
     */
9121
    template <typename T>
9122
    using scanner_type = scanner<T, char_type>;
9123
9124
    constexpr basic_scan_context(iterator curr,
9125
                                 args_type a,
9126
                                 detail::locale_ref loc = {}) noexcept
9127
0
        : base(SCN_MOVE(a), loc), m_current(curr)
9128
0
    {
9129
0
    }
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::basic_scan_context(scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::detail::locale_ref)
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::basic_scan_context(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::basic_scan_args<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::detail::locale_ref)
9130
9131
    basic_scan_context(const basic_scan_context&) = delete;
9132
    basic_scan_context& operator=(const basic_scan_context&) = delete;
9133
9134
    basic_scan_context(basic_scan_context&&) = default;
9135
    basic_scan_context& operator=(basic_scan_context&&) = default;
9136
    ~basic_scan_context() = default;
9137
9138
    /**
9139
     * Returns an iterator pointing to the current position in the source
9140
     * range.
9141
     */
9142
    constexpr iterator begin() const
9143
0
    {
9144
0
        return m_current;
9145
0
    }
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::begin() const
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::begin() const
9146
9147
    /**
9148
     * Returns a sentinel pointing to the end of the source range.
9149
     */
9150
    constexpr sentinel end() const
9151
0
    {
9152
0
        return ranges::default_sentinel;
9153
0
    }
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::end() const
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::end() const
9154
9155
    /**
9156
     * Returns a subrange over `[begin(), end())`
9157
     */
9158
    constexpr auto range() const
9159
0
    {
9160
0
        return ranges::subrange{begin(), end()};
9161
0
    }
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::range() const
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::range() const
9162
9163
    /// Advances the beginning of the source range to `it`
9164
    void advance_to(iterator it)
9165
0
    {
9166
0
        m_current = SCN_MOVE(it);
9167
0
    }
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char>::advance_to(scn::v4::detail::basic_scan_buffer<char>::forward_iterator)
Unexecuted instantiation: scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t>::advance_to(scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator)
9168
9169
private:
9170
    iterator m_current;
9171
};
9172
9173
namespace detail {
9174
template <typename T, typename ParseCtx>
9175
constexpr typename ParseCtx::iterator scanner_parse_for_builtin_type(
9176
    ParseCtx& pctx,
9177
    format_specs& specs);
9178
9179
template <typename T, typename Context>
9180
scan_expected<typename Context::iterator>
9181
scanner_scan_for_builtin_type(T& val, Context& ctx, const format_specs& specs);
9182
9183
template <typename T, typename CharT>
9184
struct builtin_scanner {
9185
    template <typename ParseCtx>
9186
    constexpr auto parse(ParseCtx& pctx) -> typename ParseCtx::iterator
9187
    {
9188
        return detail::scanner_parse_for_builtin_type<T>(pctx, m_specs);
9189
    }
9190
9191
    template <typename Context>
9192
    scan_expected<typename Context::iterator> scan(T& val, Context& ctx) const
9193
    {
9194
        return detail::scanner_scan_for_builtin_type(val, ctx, m_specs);
9195
    }
9196
9197
protected:
9198
    format_specs m_specs;
9199
};
9200
}  // namespace detail
9201
9202
/////////////////////////////////////////////////////////////////
9203
// scanner
9204
/////////////////////////////////////////////////////////////////
9205
9206
/**
9207
 * `scanner` specialization for all built-in types
9208
 *
9209
 * \ingroup ctx
9210
 */
9211
template <typename T, typename CharT>
9212
struct scanner<T,
9213
               CharT,
9214
               std::enable_if_t<detail::arg_type_constant<T, CharT>::value !=
9215
                                    detail::arg_type::custom_type &&
9216
                                !detail::is_type_disabled<T>>>
9217
    : detail::builtin_scanner<T, CharT> {};
9218
9219
namespace detail {
9220
template <typename T, typename ParseCtx>
9221
constexpr typename ParseCtx::iterator scanner_parse_for_builtin_type(
9222
    ParseCtx& pctx,
9223
    format_specs& specs)
9224
{
9225
    using char_type = typename ParseCtx::char_type;
9226
9227
    auto begin = pctx.begin();
9228
    const auto end = pctx.end();
9229
9230
    using handler_type = specs_setter;
9231
    constexpr auto type = arg_type_constant<T, char_type>::value;
9232
    auto checker =
9233
        detail::specs_checker<handler_type>(handler_type(specs), type);
9234
9235
    const auto it =
9236
        detail::parse_format_specs(to_address(begin), to_address(end), checker);
9237
9238
    switch (type) {
9239
        case arg_type::none_type:
9240
            SCN_FALLTHROUGH;
9241
        case arg_type::custom_type:
9242
            SCN_ENSURE(false);
9243
            break;
9244
9245
        case arg_type::bool_type:
9246
            check_bool_type_specs(specs, checker);
9247
            break;
9248
9249
        case arg_type::schar_type:
9250
        case arg_type::short_type:
9251
        case arg_type::int_type:
9252
        case arg_type::long_type:
9253
        case arg_type::llong_type:
9254
        case arg_type::int128_type:
9255
        case arg_type::uchar_type:
9256
        case arg_type::ushort_type:
9257
        case arg_type::uint_type:
9258
        case arg_type::ulong_type:
9259
        case arg_type::ullong_type:
9260
        case arg_type::uint128_type:
9261
            check_int_type_specs(specs, checker);
9262
            break;
9263
9264
        case arg_type::narrow_character_type:
9265
        case arg_type::wide_character_type:
9266
        case arg_type::code_point_type:
9267
            check_char_type_specs(specs, checker);
9268
            break;
9269
9270
        case arg_type::float_type:
9271
        case arg_type::double_type:
9272
        case arg_type::ldouble_type:
9273
        case arg_type::float16_type:
9274
        case arg_type::float32_type:
9275
        case arg_type::float64_type:
9276
        case arg_type::float128_type:
9277
        case arg_type::bfloat16_type:
9278
            check_float_type_specs(specs, checker);
9279
            break;
9280
9281
        case arg_type::narrow_string_type:
9282
        case arg_type::wide_string_type:
9283
        case arg_type::string_view_type:
9284
            check_string_type_specs(specs, checker);
9285
            break;
9286
9287
        case arg_type::pointer_type:
9288
            check_pointer_type_specs(specs, checker);
9289
            break;
9290
9291
            SCN_CLANG_PUSH
9292
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9293
9294
        default:
9295
            SCN_ENSURE(false);
9296
            SCN_UNREACHABLE;
9297
9298
            SCN_CLANG_POP
9299
    }
9300
9301
#if !SCN_DISABLE_REGEX
9302
    if (specs.type == presentation_type::regex ||
9303
        specs.type == presentation_type::regex_escaped) {
9304
        if (!pctx.is_source_contiguous()) {
9305
            SCN_UNLIKELY_ATTR
9306
            // clang-format off
9307
            checker.on_error("Cannot read a regex from a non-contiguous source");
9308
            // clang-format on
9309
        }
9310
        if (!pctx.is_source_borrowed()) {
9311
            SCN_UNLIKELY_ATTR
9312
            checker.on_error("Cannot read a regex from a non-borrowed source");
9313
        }
9314
    }
9315
#endif
9316
9317
    return it;
9318
}
9319
}  // namespace detail
9320
9321
/**
9322
 * Type for discarding any scanned value.
9323
 * Example:
9324
 *
9325
 * \code{.cpp}
9326
 * auto r = scn::scan<scn::discard<int>>("42", "{}");
9327
 * // r.has_value() == true
9328
 * // decltype(r->value()) is scn::discard<int>
9329
 * \endcode
9330
 *
9331
 * \ingroup format-string
9332
 */
9333
template <typename T>
9334
struct discard {
9335
    constexpr discard() = default;
9336
9337
    constexpr discard(const T&) noexcept {}
9338
    constexpr discard(T&&) noexcept {}
9339
9340
    constexpr discard& operator=(const T&) noexcept
9341
    {
9342
        return *this;
9343
    }
9344
    constexpr discard& operator=(T&&) noexcept
9345
    {
9346
        return *this;
9347
    }
9348
};
9349
9350
template <typename T, typename CharT>
9351
struct scanner<discard<T>, CharT> : public scanner<T, CharT> {
9352
    template <typename Context>
9353
    auto scan(discard<T>&, Context& ctx) const
9354
    {
9355
        T val{};
9356
        return scanner<T, CharT>::scan(val, ctx);
9357
    }
9358
};
9359
9360
namespace detail {
9361
template <typename Range>
9362
scan_expected<ranges::iterator_t<Range>> internal_skip_classic_whitespace(
9363
    Range r,
9364
    bool allow_exhaustion);
9365
9366
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(T, Context) \
9367
    extern template scan_expected<Context::iterator>         \
9368
    scanner_scan_for_builtin_type(T&, Context&, const format_specs&);
9369
9370
#if SCN_HAS_INT128
9371
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_INT128(Context)   \
9372
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(int128, Context) \
9373
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(uint128, Context)
9374
#else
9375
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_INT128(Context) /* int128 */
9376
#endif
9377
9378
#if SCN_HAS_STD_F16
9379
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F16(Context) \
9380
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::float16_t, Context)
9381
#else
9382
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F16(Context) /* std::float16_t */
9383
#endif
9384
9385
#if SCN_HAS_STD_F32
9386
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F32(Context) \
9387
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::float32_t, Context)
9388
#else
9389
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F32(Context) /* std::float32_t */
9390
#endif
9391
9392
#if SCN_HAS_STD_F64
9393
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F64(Context) \
9394
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::float64_t, Context)
9395
#else
9396
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F64(Context) /* std::float64_t */
9397
#endif
9398
9399
#if SCN_HAS_STD_F128
9400
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F128(Context) \
9401
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::float128_t, Context)
9402
#else
9403
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F128(Context)  /* std::float128_t \
9404
                                                            */
9405
#endif
9406
9407
#if SCN_HAS_STD_BF16
9408
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_BF16(Context) \
9409
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::bfloat16_t, Context)
9410
#else
9411
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_BF16(Context)  /* std::bfloat16_t \
9412
                                                            */
9413
#endif
9414
9415
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_EXT_FLOAT(Context) \
9416
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F16(Context)           \
9417
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F32(Context)           \
9418
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F64(Context)           \
9419
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_F128(Context)          \
9420
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_BF16(Context)
9421
9422
#define SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(Context)                   \
9423
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(char, Context)                \
9424
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wchar_t, Context)             \
9425
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
9426
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(signed char, Context)         \
9427
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(short, Context)               \
9428
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(int, Context)                 \
9429
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long, Context)                \
9430
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long long, Context)           \
9431
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned char, Context)       \
9432
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned short, Context)      \
9433
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned int, Context)        \
9434
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long, Context)       \
9435
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(unsigned long long, Context)  \
9436
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(float, Context)               \
9437
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(double, Context)              \
9438
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(long double, Context)         \
9439
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::string, Context)         \
9440
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(std::wstring, Context)        \
9441
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(                              \
9442
        std::basic_string_view<Context::char_type>, Context)               \
9443
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(regex_matches, Context)       \
9444
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_TYPE(wregex_matches, Context)      \
9445
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_INT128(Context)                    \
9446
    SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_EXT_FLOAT(Context)                 \
9447
    extern template scan_expected<ranges::iterator_t<Context::range_type>> \
9448
    internal_skip_classic_whitespace(Context::range_type, bool);
9449
9450
SCN_DECLARE_EXTERN_SCANNER_SCAN_FOR_CTX(scan_context)
9451
9452
}  // namespace detail
9453
9454
/////////////////////////////////////////////////////////////////
9455
// visit_scan_arg
9456
/////////////////////////////////////////////////////////////////
9457
9458
namespace detail {
9459
9460
template <typename Visitor, typename Ctx>
9461
constexpr decltype(auto) visit_impl(Visitor&& vis, basic_scan_arg<Ctx>& arg)
9462
93.5k
{
9463
93.5k
#define SCN_VISIT(Type)                                                    \
9464
607k
    do {                                                                   \
9465
607k
        if constexpr (!detail::is_type_disabled<Type>) {                   \
9466
607k
            return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9467
607k
        }                                                                  \
9468
607k
        else {                                                             \
9469
607k
            return vis(monostate_val);                                     \
9470
607k
        }                                                                  \
9471
607k
    } while (false)
9472
9473
93.5k
    monostate monostate_val{};
9474
9475
93.5k
    switch (get_arg_type(arg)) {
9476
0
        case detail::arg_type::schar_type:
9477
0
            SCN_VISIT(signed char);
9478
0
        case detail::arg_type::short_type:
9479
0
            SCN_VISIT(short);
9480
10.4k
        case detail::arg_type::int_type:
9481
10.4k
            SCN_VISIT(int);
9482
10.4k
        case detail::arg_type::long_type:
9483
10.4k
            SCN_VISIT(long);
9484
10.4k
        case detail::arg_type::llong_type:
9485
10.4k
            SCN_VISIT(long long);
9486
10.4k
        case detail::arg_type::int128_type:
9487
10.4k
#if SCN_HAS_INT128
9488
10.4k
            SCN_VISIT(int128);
9489
#else
9490
            return vis(monostate_val);
9491
#endif
9492
10.4k
        case detail::arg_type::uchar_type:
9493
10.4k
            SCN_VISIT(unsigned char);
9494
10.4k
        case detail::arg_type::ushort_type:
9495
10.4k
            SCN_VISIT(unsigned short);
9496
20.9k
        case detail::arg_type::uint_type:
9497
20.9k
            SCN_VISIT(unsigned);
9498
20.9k
        case detail::arg_type::ulong_type:
9499
20.9k
            SCN_VISIT(unsigned long);
9500
20.9k
        case detail::arg_type::ullong_type:
9501
20.9k
            SCN_VISIT(unsigned long long);
9502
20.9k
        case detail::arg_type::uint128_type:
9503
20.9k
#if SCN_HAS_INT128
9504
20.9k
            SCN_VISIT(uint128);
9505
#else
9506
            return vis(monostate_val);
9507
#endif
9508
31.2k
        case detail::arg_type::pointer_type:
9509
31.2k
            SCN_VISIT(void*);
9510
41.7k
        case detail::arg_type::bool_type:
9511
41.7k
            SCN_VISIT(bool);
9512
44.7k
        case detail::arg_type::narrow_character_type:
9513
44.7k
            SCN_VISIT(char);
9514
52.0k
        case detail::arg_type::wide_character_type:
9515
52.0k
            SCN_VISIT(wchar_t);
9516
52.0k
        case detail::arg_type::code_point_type:
9517
52.0k
            SCN_VISIT(char32_t);
9518
52.0k
        case detail::arg_type::float_type:
9519
52.0k
            SCN_VISIT(float);
9520
62.5k
        case detail::arg_type::double_type:
9521
62.5k
            SCN_VISIT(double);
9522
62.5k
        case detail::arg_type::ldouble_type:
9523
62.5k
            SCN_VISIT(long double);
9524
62.5k
        case detail::arg_type::float16_type:
9525
#if SCN_HAS_STD_F16
9526
            SCN_VISIT(std::float16_t);
9527
#else
9528
62.5k
            return vis(monostate_val);
9529
0
#endif
9530
0
        case detail::arg_type::float32_type:
9531
#if SCN_HAS_STD_F32
9532
            SCN_VISIT(std::float32_t);
9533
#else
9534
0
            return vis(monostate_val);
9535
0
#endif
9536
0
        case detail::arg_type::float64_type:
9537
#if SCN_HAS_STD_F64
9538
            SCN_VISIT(std::float64_t);
9539
#else
9540
0
            return vis(monostate_val);
9541
0
#endif
9542
0
        case detail::arg_type::float128_type:
9543
#if SCN_HAS_STD_F64
9544
            SCN_VISIT(std::float128_t);
9545
#else
9546
0
            return vis(monostate_val);
9547
0
#endif
9548
0
        case detail::arg_type::bfloat16_type:
9549
#if SCN_HAS_STD_BF16
9550
            SCN_VISIT(std::bfloat16_t);
9551
#else
9552
0
            return vis(monostate_val);
9553
0
#endif
9554
10.3k
        case detail::arg_type::narrow_string_type:
9555
10.3k
            SCN_VISIT(std::string);
9556
20.7k
        case detail::arg_type::wide_string_type:
9557
20.7k
            SCN_VISIT(std::wstring);
9558
31.0k
        case detail::arg_type::string_view_type: {
9559
31.0k
            if constexpr (std::is_same_v<typename Ctx::char_type, char>) {
9560
9.12k
                SCN_VISIT(std::string_view);
9561
            }
9562
21.9k
            else {
9563
21.9k
                SCN_VISIT(std::wstring_view);
9564
21.9k
            }
9565
31.0k
        }
9566
9567
31.0k
        case detail::arg_type::custom_type:
9568
31.0k
#if !SCN_DISABLE_TYPE_CUSTOM
9569
31.0k
            return vis(typename basic_scan_arg<Ctx>::handle(
9570
31.0k
                get_arg_value(arg).custom_value));
9571
#else
9572
            return vis(monostate_val);
9573
#endif
9574
9575
0
            SCN_CLANG_PUSH
9576
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9577
9578
0
            SCN_UNLIKELY_ATTR
9579
0
        case detail::arg_type::none_type:
9580
0
        default: {
9581
0
            return vis(monostate_val);
9582
0
        }
9583
9584
93.5k
            SCN_CLANG_POP
9585
93.5k
    }
9586
9587
0
#undef SCN_VISIT
9588
9589
0
    SCN_ENSURE(false);
9590
0
    SCN_UNREACHABLE;
9591
0
}
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9462
5.68k
{
9463
5.68k
#define SCN_VISIT(Type)                                                    \
9464
5.68k
    do {                                                                   \
9465
5.68k
        if constexpr (!detail::is_type_disabled<Type>) {                   \
9466
5.68k
            return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9467
5.68k
        }                                                                  \
9468
5.68k
        else {                                                             \
9469
5.68k
            return vis(monostate_val);                                     \
9470
5.68k
        }                                                                  \
9471
5.68k
    } while (false)
9472
9473
5.68k
    monostate monostate_val{};
9474
9475
5.68k
    switch (get_arg_type(arg)) {
9476
0
        case detail::arg_type::schar_type:
9477
0
            SCN_VISIT(signed char);
9478
0
        case detail::arg_type::short_type:
9479
0
            SCN_VISIT(short);
9480
632
        case detail::arg_type::int_type:
9481
632
            SCN_VISIT(int);
9482
632
        case detail::arg_type::long_type:
9483
632
            SCN_VISIT(long);
9484
632
        case detail::arg_type::llong_type:
9485
632
            SCN_VISIT(long long);
9486
632
        case detail::arg_type::int128_type:
9487
632
#if SCN_HAS_INT128
9488
632
            SCN_VISIT(int128);
9489
#else
9490
            return vis(monostate_val);
9491
#endif
9492
632
        case detail::arg_type::uchar_type:
9493
632
            SCN_VISIT(unsigned char);
9494
632
        case detail::arg_type::ushort_type:
9495
632
            SCN_VISIT(unsigned short);
9496
1.26k
        case detail::arg_type::uint_type:
9497
1.26k
            SCN_VISIT(unsigned);
9498
1.26k
        case detail::arg_type::ulong_type:
9499
1.26k
            SCN_VISIT(unsigned long);
9500
1.26k
        case detail::arg_type::ullong_type:
9501
1.26k
            SCN_VISIT(unsigned long long);
9502
1.26k
        case detail::arg_type::uint128_type:
9503
1.26k
#if SCN_HAS_INT128
9504
1.26k
            SCN_VISIT(uint128);
9505
#else
9506
            return vis(monostate_val);
9507
#endif
9508
1.89k
        case detail::arg_type::pointer_type:
9509
1.89k
            SCN_VISIT(void*);
9510
2.52k
        case detail::arg_type::bool_type:
9511
2.52k
            SCN_VISIT(bool);
9512
3.16k
        case detail::arg_type::narrow_character_type:
9513
3.16k
            SCN_VISIT(char);
9514
3.16k
        case detail::arg_type::wide_character_type:
9515
3.16k
            SCN_VISIT(wchar_t);
9516
3.16k
        case detail::arg_type::code_point_type:
9517
3.16k
            SCN_VISIT(char32_t);
9518
3.16k
        case detail::arg_type::float_type:
9519
3.16k
            SCN_VISIT(float);
9520
3.79k
        case detail::arg_type::double_type:
9521
3.79k
            SCN_VISIT(double);
9522
3.79k
        case detail::arg_type::ldouble_type:
9523
3.79k
            SCN_VISIT(long double);
9524
3.79k
        case detail::arg_type::float16_type:
9525
#if SCN_HAS_STD_F16
9526
            SCN_VISIT(std::float16_t);
9527
#else
9528
3.79k
            return vis(monostate_val);
9529
0
#endif
9530
0
        case detail::arg_type::float32_type:
9531
#if SCN_HAS_STD_F32
9532
            SCN_VISIT(std::float32_t);
9533
#else
9534
0
            return vis(monostate_val);
9535
0
#endif
9536
0
        case detail::arg_type::float64_type:
9537
#if SCN_HAS_STD_F64
9538
            SCN_VISIT(std::float64_t);
9539
#else
9540
0
            return vis(monostate_val);
9541
0
#endif
9542
0
        case detail::arg_type::float128_type:
9543
#if SCN_HAS_STD_F64
9544
            SCN_VISIT(std::float128_t);
9545
#else
9546
0
            return vis(monostate_val);
9547
0
#endif
9548
0
        case detail::arg_type::bfloat16_type:
9549
#if SCN_HAS_STD_BF16
9550
            SCN_VISIT(std::bfloat16_t);
9551
#else
9552
0
            return vis(monostate_val);
9553
0
#endif
9554
632
        case detail::arg_type::narrow_string_type:
9555
632
            SCN_VISIT(std::string);
9556
1.26k
        case detail::arg_type::wide_string_type:
9557
1.26k
            SCN_VISIT(std::wstring);
9558
1.89k
        case detail::arg_type::string_view_type: {
9559
1.89k
            if constexpr (std::is_same_v<typename Ctx::char_type, char>) {
9560
1.89k
                SCN_VISIT(std::string_view);
9561
            }
9562
            else {
9563
                SCN_VISIT(std::wstring_view);
9564
            }
9565
1.89k
        }
9566
9567
1.89k
        case detail::arg_type::custom_type:
9568
1.89k
#if !SCN_DISABLE_TYPE_CUSTOM
9569
1.89k
            return vis(typename basic_scan_arg<Ctx>::handle(
9570
1.89k
                get_arg_value(arg).custom_value));
9571
#else
9572
            return vis(monostate_val);
9573
#endif
9574
9575
0
            SCN_CLANG_PUSH
9576
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9577
9578
0
            SCN_UNLIKELY_ATTR
9579
0
        case detail::arg_type::none_type:
9580
0
        default: {
9581
0
            return vis(monostate_val);
9582
0
        }
9583
9584
5.68k
            SCN_CLANG_POP
9585
5.68k
    }
9586
9587
0
#undef SCN_VISIT
9588
9589
0
    SCN_ENSURE(false);
9590
0
    SCN_UNREACHABLE;
9591
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
Line
Count
Source
9462
21.8k
{
9463
21.8k
#define SCN_VISIT(Type)                                                    \
9464
21.8k
    do {                                                                   \
9465
21.8k
        if constexpr (!detail::is_type_disabled<Type>) {                   \
9466
21.8k
            return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9467
21.8k
        }                                                                  \
9468
21.8k
        else {                                                             \
9469
21.8k
            return vis(monostate_val);                                     \
9470
21.8k
        }                                                                  \
9471
21.8k
    } while (false)
9472
9473
21.8k
    monostate monostate_val{};
9474
9475
21.8k
    switch (get_arg_type(arg)) {
9476
0
        case detail::arg_type::schar_type:
9477
0
            SCN_VISIT(signed char);
9478
0
        case detail::arg_type::short_type:
9479
0
            SCN_VISIT(short);
9480
2.44k
        case detail::arg_type::int_type:
9481
2.44k
            SCN_VISIT(int);
9482
2.44k
        case detail::arg_type::long_type:
9483
2.44k
            SCN_VISIT(long);
9484
2.44k
        case detail::arg_type::llong_type:
9485
2.44k
            SCN_VISIT(long long);
9486
2.44k
        case detail::arg_type::int128_type:
9487
2.44k
#if SCN_HAS_INT128
9488
2.44k
            SCN_VISIT(int128);
9489
#else
9490
            return vis(monostate_val);
9491
#endif
9492
2.44k
        case detail::arg_type::uchar_type:
9493
2.44k
            SCN_VISIT(unsigned char);
9494
2.44k
        case detail::arg_type::ushort_type:
9495
2.44k
            SCN_VISIT(unsigned short);
9496
4.89k
        case detail::arg_type::uint_type:
9497
4.89k
            SCN_VISIT(unsigned);
9498
4.89k
        case detail::arg_type::ulong_type:
9499
4.89k
            SCN_VISIT(unsigned long);
9500
4.89k
        case detail::arg_type::ullong_type:
9501
4.89k
            SCN_VISIT(unsigned long long);
9502
4.89k
        case detail::arg_type::uint128_type:
9503
4.89k
#if SCN_HAS_INT128
9504
4.89k
            SCN_VISIT(uint128);
9505
#else
9506
            return vis(monostate_val);
9507
#endif
9508
7.30k
        case detail::arg_type::pointer_type:
9509
7.30k
            SCN_VISIT(void*);
9510
9.75k
        case detail::arg_type::bool_type:
9511
9.75k
            SCN_VISIT(bool);
9512
12.1k
        case detail::arg_type::narrow_character_type:
9513
12.1k
            SCN_VISIT(char);
9514
12.1k
        case detail::arg_type::wide_character_type:
9515
12.1k
            SCN_VISIT(wchar_t);
9516
12.1k
        case detail::arg_type::code_point_type:
9517
12.1k
            SCN_VISIT(char32_t);
9518
12.1k
        case detail::arg_type::float_type:
9519
12.1k
            SCN_VISIT(float);
9520
14.6k
        case detail::arg_type::double_type:
9521
14.6k
            SCN_VISIT(double);
9522
14.6k
        case detail::arg_type::ldouble_type:
9523
14.6k
            SCN_VISIT(long double);
9524
14.6k
        case detail::arg_type::float16_type:
9525
#if SCN_HAS_STD_F16
9526
            SCN_VISIT(std::float16_t);
9527
#else
9528
14.6k
            return vis(monostate_val);
9529
0
#endif
9530
0
        case detail::arg_type::float32_type:
9531
#if SCN_HAS_STD_F32
9532
            SCN_VISIT(std::float32_t);
9533
#else
9534
0
            return vis(monostate_val);
9535
0
#endif
9536
0
        case detail::arg_type::float64_type:
9537
#if SCN_HAS_STD_F64
9538
            SCN_VISIT(std::float64_t);
9539
#else
9540
0
            return vis(monostate_val);
9541
0
#endif
9542
0
        case detail::arg_type::float128_type:
9543
#if SCN_HAS_STD_F64
9544
            SCN_VISIT(std::float128_t);
9545
#else
9546
0
            return vis(monostate_val);
9547
0
#endif
9548
0
        case detail::arg_type::bfloat16_type:
9549
#if SCN_HAS_STD_BF16
9550
            SCN_VISIT(std::bfloat16_t);
9551
#else
9552
0
            return vis(monostate_val);
9553
0
#endif
9554
2.40k
        case detail::arg_type::narrow_string_type:
9555
2.40k
            SCN_VISIT(std::string);
9556
4.81k
        case detail::arg_type::wide_string_type:
9557
4.81k
            SCN_VISIT(std::wstring);
9558
7.22k
        case detail::arg_type::string_view_type: {
9559
7.22k
            if constexpr (std::is_same_v<typename Ctx::char_type, char>) {
9560
7.22k
                SCN_VISIT(std::string_view);
9561
            }
9562
            else {
9563
                SCN_VISIT(std::wstring_view);
9564
            }
9565
7.22k
        }
9566
9567
7.22k
        case detail::arg_type::custom_type:
9568
7.22k
#if !SCN_DISABLE_TYPE_CUSTOM
9569
7.22k
            return vis(typename basic_scan_arg<Ctx>::handle(
9570
7.22k
                get_arg_value(arg).custom_value));
9571
#else
9572
            return vis(monostate_val);
9573
#endif
9574
9575
0
            SCN_CLANG_PUSH
9576
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9577
9578
0
            SCN_UNLIKELY_ATTR
9579
0
        case detail::arg_type::none_type:
9580
0
        default: {
9581
0
            return vis(monostate_val);
9582
0
        }
9583
9584
21.8k
            SCN_CLANG_POP
9585
21.8k
    }
9586
9587
0
#undef SCN_VISIT
9588
9589
0
    SCN_ENSURE(false);
9590
0
    SCN_UNREACHABLE;
9591
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&)
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9462
54.9k
{
9463
54.9k
#define SCN_VISIT(Type)                                                    \
9464
54.9k
    do {                                                                   \
9465
54.9k
        if constexpr (!detail::is_type_disabled<Type>) {                   \
9466
54.9k
            return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9467
54.9k
        }                                                                  \
9468
54.9k
        else {                                                             \
9469
54.9k
            return vis(monostate_val);                                     \
9470
54.9k
        }                                                                  \
9471
54.9k
    } while (false)
9472
9473
54.9k
    monostate monostate_val{};
9474
9475
54.9k
    switch (get_arg_type(arg)) {
9476
0
        case detail::arg_type::schar_type:
9477
0
            SCN_VISIT(signed char);
9478
0
        case detail::arg_type::short_type:
9479
0
            SCN_VISIT(short);
9480
6.10k
        case detail::arg_type::int_type:
9481
6.10k
            SCN_VISIT(int);
9482
6.10k
        case detail::arg_type::long_type:
9483
6.10k
            SCN_VISIT(long);
9484
6.10k
        case detail::arg_type::llong_type:
9485
6.10k
            SCN_VISIT(long long);
9486
6.10k
        case detail::arg_type::int128_type:
9487
6.10k
#if SCN_HAS_INT128
9488
6.10k
            SCN_VISIT(int128);
9489
#else
9490
            return vis(monostate_val);
9491
#endif
9492
6.10k
        case detail::arg_type::uchar_type:
9493
6.10k
            SCN_VISIT(unsigned char);
9494
6.10k
        case detail::arg_type::ushort_type:
9495
6.10k
            SCN_VISIT(unsigned short);
9496
12.2k
        case detail::arg_type::uint_type:
9497
12.2k
            SCN_VISIT(unsigned);
9498
12.2k
        case detail::arg_type::ulong_type:
9499
12.2k
            SCN_VISIT(unsigned long);
9500
12.2k
        case detail::arg_type::ullong_type:
9501
12.2k
            SCN_VISIT(unsigned long long);
9502
12.2k
        case detail::arg_type::uint128_type:
9503
12.2k
#if SCN_HAS_INT128
9504
12.2k
            SCN_VISIT(uint128);
9505
#else
9506
            return vis(monostate_val);
9507
#endif
9508
18.3k
        case detail::arg_type::pointer_type:
9509
18.3k
            SCN_VISIT(void*);
9510
24.4k
        case detail::arg_type::bool_type:
9511
24.4k
            SCN_VISIT(bool);
9512
24.4k
        case detail::arg_type::narrow_character_type:
9513
24.4k
            SCN_VISIT(char);
9514
30.5k
        case detail::arg_type::wide_character_type:
9515
30.5k
            SCN_VISIT(wchar_t);
9516
30.5k
        case detail::arg_type::code_point_type:
9517
30.5k
            SCN_VISIT(char32_t);
9518
30.5k
        case detail::arg_type::float_type:
9519
30.5k
            SCN_VISIT(float);
9520
36.6k
        case detail::arg_type::double_type:
9521
36.6k
            SCN_VISIT(double);
9522
36.6k
        case detail::arg_type::ldouble_type:
9523
36.6k
            SCN_VISIT(long double);
9524
36.6k
        case detail::arg_type::float16_type:
9525
#if SCN_HAS_STD_F16
9526
            SCN_VISIT(std::float16_t);
9527
#else
9528
36.6k
            return vis(monostate_val);
9529
0
#endif
9530
0
        case detail::arg_type::float32_type:
9531
#if SCN_HAS_STD_F32
9532
            SCN_VISIT(std::float32_t);
9533
#else
9534
0
            return vis(monostate_val);
9535
0
#endif
9536
0
        case detail::arg_type::float64_type:
9537
#if SCN_HAS_STD_F64
9538
            SCN_VISIT(std::float64_t);
9539
#else
9540
0
            return vis(monostate_val);
9541
0
#endif
9542
0
        case detail::arg_type::float128_type:
9543
#if SCN_HAS_STD_F64
9544
            SCN_VISIT(std::float128_t);
9545
#else
9546
0
            return vis(monostate_val);
9547
0
#endif
9548
0
        case detail::arg_type::bfloat16_type:
9549
#if SCN_HAS_STD_BF16
9550
            SCN_VISIT(std::bfloat16_t);
9551
#else
9552
0
            return vis(monostate_val);
9553
0
#endif
9554
6.10k
        case detail::arg_type::narrow_string_type:
9555
6.10k
            SCN_VISIT(std::string);
9556
12.2k
        case detail::arg_type::wide_string_type:
9557
12.2k
            SCN_VISIT(std::wstring);
9558
18.3k
        case detail::arg_type::string_view_type: {
9559
            if constexpr (std::is_same_v<typename Ctx::char_type, char>) {
9560
                SCN_VISIT(std::string_view);
9561
            }
9562
18.3k
            else {
9563
18.3k
                SCN_VISIT(std::wstring_view);
9564
18.3k
            }
9565
18.3k
        }
9566
9567
18.3k
        case detail::arg_type::custom_type:
9568
18.3k
#if !SCN_DISABLE_TYPE_CUSTOM
9569
18.3k
            return vis(typename basic_scan_arg<Ctx>::handle(
9570
18.3k
                get_arg_value(arg).custom_value));
9571
#else
9572
            return vis(monostate_val);
9573
#endif
9574
9575
0
            SCN_CLANG_PUSH
9576
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9577
9578
0
            SCN_UNLIKELY_ATTR
9579
0
        case detail::arg_type::none_type:
9580
0
        default: {
9581
0
            return vis(monostate_val);
9582
0
        }
9583
9584
54.9k
            SCN_CLANG_POP
9585
54.9k
    }
9586
9587
0
#undef SCN_VISIT
9588
9589
0
    SCN_ENSURE(false);
9590
0
    SCN_UNREACHABLE;
9591
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Line
Count
Source
9462
11.1k
{
9463
11.1k
#define SCN_VISIT(Type)                                                    \
9464
11.1k
    do {                                                                   \
9465
11.1k
        if constexpr (!detail::is_type_disabled<Type>) {                   \
9466
11.1k
            return vis(*static_cast<Type*>(get_arg_value(arg).ref_value)); \
9467
11.1k
        }                                                                  \
9468
11.1k
        else {                                                             \
9469
11.1k
            return vis(monostate_val);                                     \
9470
11.1k
        }                                                                  \
9471
11.1k
    } while (false)
9472
9473
11.1k
    monostate monostate_val{};
9474
9475
11.1k
    switch (get_arg_type(arg)) {
9476
0
        case detail::arg_type::schar_type:
9477
0
            SCN_VISIT(signed char);
9478
0
        case detail::arg_type::short_type:
9479
0
            SCN_VISIT(short);
9480
1.27k
        case detail::arg_type::int_type:
9481
1.27k
            SCN_VISIT(int);
9482
1.27k
        case detail::arg_type::long_type:
9483
1.27k
            SCN_VISIT(long);
9484
1.27k
        case detail::arg_type::llong_type:
9485
1.27k
            SCN_VISIT(long long);
9486
1.27k
        case detail::arg_type::int128_type:
9487
1.27k
#if SCN_HAS_INT128
9488
1.27k
            SCN_VISIT(int128);
9489
#else
9490
            return vis(monostate_val);
9491
#endif
9492
1.27k
        case detail::arg_type::uchar_type:
9493
1.27k
            SCN_VISIT(unsigned char);
9494
1.27k
        case detail::arg_type::ushort_type:
9495
1.27k
            SCN_VISIT(unsigned short);
9496
2.54k
        case detail::arg_type::uint_type:
9497
2.54k
            SCN_VISIT(unsigned);
9498
2.54k
        case detail::arg_type::ulong_type:
9499
2.54k
            SCN_VISIT(unsigned long);
9500
2.54k
        case detail::arg_type::ullong_type:
9501
2.54k
            SCN_VISIT(unsigned long long);
9502
2.54k
        case detail::arg_type::uint128_type:
9503
2.54k
#if SCN_HAS_INT128
9504
2.54k
            SCN_VISIT(uint128);
9505
#else
9506
            return vis(monostate_val);
9507
#endif
9508
3.75k
        case detail::arg_type::pointer_type:
9509
3.75k
            SCN_VISIT(void*);
9510
5.02k
        case detail::arg_type::bool_type:
9511
5.02k
            SCN_VISIT(bool);
9512
5.02k
        case detail::arg_type::narrow_character_type:
9513
5.02k
            SCN_VISIT(char);
9514
6.23k
        case detail::arg_type::wide_character_type:
9515
6.23k
            SCN_VISIT(wchar_t);
9516
6.23k
        case detail::arg_type::code_point_type:
9517
6.23k
            SCN_VISIT(char32_t);
9518
6.23k
        case detail::arg_type::float_type:
9519
6.23k
            SCN_VISIT(float);
9520
7.50k
        case detail::arg_type::double_type:
9521
7.50k
            SCN_VISIT(double);
9522
7.50k
        case detail::arg_type::ldouble_type:
9523
7.50k
            SCN_VISIT(long double);
9524
7.50k
        case detail::arg_type::float16_type:
9525
#if SCN_HAS_STD_F16
9526
            SCN_VISIT(std::float16_t);
9527
#else
9528
7.50k
            return vis(monostate_val);
9529
0
#endif
9530
0
        case detail::arg_type::float32_type:
9531
#if SCN_HAS_STD_F32
9532
            SCN_VISIT(std::float32_t);
9533
#else
9534
0
            return vis(monostate_val);
9535
0
#endif
9536
0
        case detail::arg_type::float64_type:
9537
#if SCN_HAS_STD_F64
9538
            SCN_VISIT(std::float64_t);
9539
#else
9540
0
            return vis(monostate_val);
9541
0
#endif
9542
0
        case detail::arg_type::float128_type:
9543
#if SCN_HAS_STD_F64
9544
            SCN_VISIT(std::float128_t);
9545
#else
9546
0
            return vis(monostate_val);
9547
0
#endif
9548
0
        case detail::arg_type::bfloat16_type:
9549
#if SCN_HAS_STD_BF16
9550
            SCN_VISIT(std::bfloat16_t);
9551
#else
9552
0
            return vis(monostate_val);
9553
0
#endif
9554
1.21k
        case detail::arg_type::narrow_string_type:
9555
1.21k
            SCN_VISIT(std::string);
9556
2.42k
        case detail::arg_type::wide_string_type:
9557
2.42k
            SCN_VISIT(std::wstring);
9558
3.63k
        case detail::arg_type::string_view_type: {
9559
            if constexpr (std::is_same_v<typename Ctx::char_type, char>) {
9560
                SCN_VISIT(std::string_view);
9561
            }
9562
3.63k
            else {
9563
3.63k
                SCN_VISIT(std::wstring_view);
9564
3.63k
            }
9565
3.63k
        }
9566
9567
3.63k
        case detail::arg_type::custom_type:
9568
3.63k
#if !SCN_DISABLE_TYPE_CUSTOM
9569
3.63k
            return vis(typename basic_scan_arg<Ctx>::handle(
9570
3.63k
                get_arg_value(arg).custom_value));
9571
#else
9572
            return vis(monostate_val);
9573
#endif
9574
9575
0
            SCN_CLANG_PUSH
9576
0
            SCN_CLANG_IGNORE("-Wcovered-switch-default")
9577
9578
0
            SCN_UNLIKELY_ATTR
9579
0
        case detail::arg_type::none_type:
9580
0
        default: {
9581
0
            return vis(monostate_val);
9582
0
        }
9583
9584
11.1k
            SCN_CLANG_POP
9585
11.1k
    }
9586
9587
0
#undef SCN_VISIT
9588
9589
0
    SCN_ENSURE(false);
9590
0
    SCN_UNREACHABLE;
9591
0
}
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
Unexecuted instantiation: decltype(auto) scn::v4::detail::visit_impl<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >, scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&, scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&)
9592
9593
}  // namespace detail
9594
9595
template <typename Visitor, typename Ctx>
9596
[[deprecated("Use basic_scan_arg::visit instead")]] constexpr decltype(auto)
9597
visit_scan_arg(Visitor&& vis, basic_scan_arg<Ctx>& arg)
9598
{
9599
    return detail::visit_impl(SCN_FWD(vis), arg);
9600
}
9601
9602
template <typename Context>
9603
template <typename Visitor>
9604
constexpr decltype(auto) basic_scan_arg<Context>::visit(Visitor&& vis)
9605
93.5k
{
9606
93.5k
    return detail::visit_impl(SCN_FWD(vis), *this);
9607
93.5k
}
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&)
Line
Count
Source
9605
5.68k
{
9606
5.68k
    return detail::visit_impl(SCN_FWD(vis), *this);
9607
5.68k
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, char> >&&)
Line
Count
Source
9605
21.8k
{
9606
21.8k
    return detail::visit_impl(SCN_FWD(vis), *this);
9607
21.8k
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, char> >&&)
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&)
Line
Count
Source
9605
54.9k
{
9606
54.9k
    return detail::visit_impl(SCN_FWD(vis), *this);
9607
54.9k
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::custom_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, wchar_t> >&&)
Line
Count
Source
9605
11.1k
{
9606
11.1k
    return detail::visit_impl(SCN_FWD(vis), *this);
9607
11.1k
}
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::default_arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
Unexecuted instantiation: decltype(auto) scn::v4::basic_scan_arg<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >::visit<scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> > >(scn::v4::impl::arg_reader<scn::v4::basic_scan_context<scn::v4::detail::buffer_range_tag, wchar_t> >&&)
9608
9609
template <typename Context>
9610
template <typename R, typename Visitor>
9611
constexpr R basic_scan_arg<Context>::visit(Visitor&& vis)
9612
{
9613
    return detail::visit_impl(SCN_FWD(vis), *this);
9614
}
9615
9616
/////////////////////////////////////////////////////////////////
9617
// vscan
9618
/////////////////////////////////////////////////////////////////
9619
9620
/**
9621
 * \defgroup vscan Type-erased scanning API
9622
 *
9623
 * \brief Lower-level scanning API with type-erased arguments
9624
 */
9625
9626
namespace detail {
9627
template <typename Source>
9628
using scan_result_value_type =
9629
    std::conditional_t<std::is_same_v<remove_cvref_t<Source>, std::FILE*>,
9630
                       std::FILE*,
9631
                       borrowed_tail_subrange_t<Source>>;
9632
}
9633
9634
/**
9635
 * Result type returned by `vscan`.
9636
 *
9637
 * The value type of the `scan_expected` is `FILE*` if `Source` is `FILE*`,
9638
 * `detail::borrowed_tail_subrange_t<Source>` otherwise.
9639
 *
9640
 * \ingroup vscan
9641
 */
9642
template <typename Source>
9643
using vscan_result = scan_expected<detail::scan_result_value_type<Source>>;
9644
9645
namespace detail {
9646
scan_expected<std::ptrdiff_t> vscan_impl(std::string_view source,
9647
                                         std::string_view format,
9648
                                         scan_args args);
9649
scan_expected<std::ptrdiff_t> vscan_impl(scan_buffer& source,
9650
                                         std::string_view format,
9651
                                         scan_args args);
9652
9653
scan_expected<std::ptrdiff_t> vscan_impl(std::wstring_view source,
9654
                                         std::wstring_view format,
9655
                                         wscan_args args);
9656
scan_expected<std::ptrdiff_t> vscan_impl(wscan_buffer& source,
9657
                                         std::wstring_view format,
9658
                                         wscan_args args);
9659
9660
#if !SCN_DISABLE_LOCALE
9661
template <typename Locale>
9662
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9663
                                                   std::string_view source,
9664
                                                   std::string_view format,
9665
                                                   scan_args args);
9666
template <typename Locale>
9667
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9668
                                                   scan_buffer& source,
9669
                                                   std::string_view format,
9670
                                                   scan_args args);
9671
9672
template <typename Locale>
9673
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9674
                                                   std::wstring_view source,
9675
                                                   std::wstring_view format,
9676
                                                   wscan_args args);
9677
template <typename Locale>
9678
scan_expected<std::ptrdiff_t> vscan_localized_impl(const Locale& loc,
9679
                                                   wscan_buffer& source,
9680
                                                   std::wstring_view format,
9681
                                                   wscan_args args);
9682
#endif
9683
9684
scan_expected<std::ptrdiff_t> vscan_value_impl(
9685
    std::string_view source,
9686
    basic_scan_arg<scan_context> arg);
9687
scan_expected<std::ptrdiff_t> vscan_value_impl(
9688
    scan_buffer& source,
9689
    basic_scan_arg<scan_context> arg);
9690
9691
scan_expected<std::ptrdiff_t> vscan_value_impl(
9692
    std::wstring_view source,
9693
    basic_scan_arg<wscan_context> arg);
9694
scan_expected<std::ptrdiff_t> vscan_value_impl(
9695
    wscan_buffer& source,
9696
    basic_scan_arg<wscan_context> arg);
9697
9698
template <typename Range, typename CharT>
9699
auto vscan_generic(Range&& range,
9700
                   std::basic_string_view<CharT> format,
9701
                   basic_scan_args<detail::default_context<CharT>> args)
9702
    -> vscan_result<Range>
9703
75.8k
{
9704
75.8k
    auto buffer = make_scan_buffer(range);
9705
9706
75.8k
    auto result = vscan_impl(buffer, format, args);
9707
75.8k
    if (SCN_UNLIKELY(!result)) {
9708
73.6k
        return unexpected(result.error());
9709
73.6k
    }
9710
2.15k
    return make_vscan_result_range(SCN_FWD(range), *result);
9711
75.8k
}
_ZN3scn2v46detail13vscan_genericIRNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS1_22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEEOSB_NS4_IT0_NS5_ISN_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESN_EEEE
Line
Count
Source
9703
25.2k
{
9704
25.2k
    auto buffer = make_scan_buffer(range);
9705
9706
25.2k
    auto result = vscan_impl(buffer, format, args);
9707
25.2k
    if (SCN_UNLIKELY(!result)) {
9708
24.1k
        return unexpected(result.error());
9709
24.1k
    }
9710
1.11k
    return make_vscan_result_range(SCN_FWD(range), *result);
9711
25.2k
}
_ZN3scn2v46detail13vscan_genericIRNSt3__117basic_string_viewIwNS3_11char_traitsIwEEEEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESF_NS1_22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEEEOSB_NS4_IT0_NS5_ISN_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESN_EEEE
Line
Count
Source
9703
50.5k
{
9704
50.5k
    auto buffer = make_scan_buffer(range);
9705
9706
50.5k
    auto result = vscan_impl(buffer, format, args);
9707
50.5k
    if (SCN_UNLIKELY(!result)) {
9708
49.5k
        return unexpected(result.error());
9709
49.5k
    }
9710
1.03k
    return make_vscan_result_range(SCN_FWD(range), *result);
9711
50.5k
}
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS1_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIT0_NSD_11char_traitsISS_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESS_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericIRNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NS3_17basic_string_viewIT0_NS5_ISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEcEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeINS1_17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS1_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIT0_NSD_11char_traitsISS_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESS_EEEE
Unexecuted instantiation: _ZN3scn2v46detail13vscan_genericINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEwEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESH_NS1_22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEEEOSD_NSB_17basic_string_viewIT0_NSB_11char_traitsISQ_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESQ_EEEE
9712
9713
template <typename Locale, typename Range, typename CharT>
9714
auto vscan_localized_generic(
9715
    const Locale& loc,
9716
    Range&& range,
9717
    std::basic_string_view<CharT> format,
9718
    basic_scan_args<detail::default_context<CharT>> args) -> vscan_result<Range>
9719
75.8k
{
9720
75.8k
#if !SCN_DISABLE_LOCALE
9721
75.8k
    auto buffer = detail::make_scan_buffer(range);
9722
9723
75.8k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9724
75.8k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9725
75.8k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9726
9727
75.8k
    if (SCN_UNLIKELY(!result)) {
9728
73.6k
        return unexpected(result.error());
9729
73.6k
    }
9730
2.15k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9731
#else
9732
    static_assert(dependent_false<Locale>::value,
9733
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9734
9735
    return {};
9736
#endif
9737
75.8k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeERNS3_17basic_string_viewIcNS3_11char_traitsIcEEEEcEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS1_22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEERKT_OSC_NS5_IT1_NS6_ISR_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESR_EEEE
Line
Count
Source
9719
25.2k
{
9720
25.2k
#if !SCN_DISABLE_LOCALE
9721
25.2k
    auto buffer = detail::make_scan_buffer(range);
9722
9723
25.2k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9724
25.2k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9725
25.2k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9726
9727
25.2k
    if (SCN_UNLIKELY(!result)) {
9728
24.1k
        return unexpected(result.error());
9729
24.1k
    }
9730
1.11k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9731
#else
9732
    static_assert(dependent_false<Locale>::value,
9733
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9734
9735
    return {};
9736
#endif
9737
25.2k
}
_ZN3scn2v46detail23vscan_localized_genericINSt3__16localeERNS3_17basic_string_viewIwNS3_11char_traitsIwEEEEwEENS0_13scan_expectedINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS1_22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEERKT_OSC_NS5_IT1_NS6_ISR_EEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS1_16buffer_range_tagESR_EEEE
Line
Count
Source
9719
50.5k
{
9720
50.5k
#if !SCN_DISABLE_LOCALE
9721
50.5k
    auto buffer = detail::make_scan_buffer(range);
9722
9723
50.5k
    SCN_CLANG_PUSH_IGNORE_UNDEFINED_TEMPLATE
9724
50.5k
    auto result = detail::vscan_localized_impl(loc, buffer, format, args);
9725
50.5k
    SCN_CLANG_POP_IGNORE_UNDEFINED_TEMPLATE
9726
9727
50.5k
    if (SCN_UNLIKELY(!result)) {
9728
49.5k
        return unexpected(result.error());
9729
49.5k
    }
9730
1.03k
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9731
#else
9732
    static_assert(dependent_false<Locale>::value,
9733
                  "Can't use scan(locale, ...) with SCN_DISABLE_LOCALE on");
9734
9735
    return {};
9736
#endif
9737
50.5k
}
9738
9739
template <typename Range, typename CharT>
9740
auto vscan_value_generic(Range&& range,
9741
                         basic_scan_arg<detail::default_context<CharT>> arg)
9742
    -> vscan_result<Range>
9743
{
9744
    auto buffer = detail::make_scan_buffer(range);
9745
9746
    auto result = detail::vscan_value_impl(buffer, arg);
9747
    if (SCN_UNLIKELY(!result)) {
9748
        return unexpected(result.error());
9749
    }
9750
    return detail::make_vscan_result_range(SCN_FWD(range), *result);
9751
}
9752
}  // namespace detail
9753
9754
SCN_GCC_PUSH
9755
SCN_GCC_IGNORE("-Wnoexcept")
9756
9757
/**
9758
 * Perform actual scanning from `source`, according to `format`, into the
9759
 * type-erased arguments at `args`. Called by `scan`.
9760
 *
9761
 * \ingroup vscan
9762
 */
9763
template <typename Source>
9764
auto vscan(Source&& source, std::string_view format, scan_args args)
9765
    -> vscan_result<Source>
9766
25.2k
{
9767
25.2k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9768
25.2k
}
_ZN3scn2v45vscanIRNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESE_NS0_6detail22borrowed_tail_subrangeISA_Xsr6rangesE14borrowed_rangeISA_EEE4typeEE4typeEEEOSA_S6_NS0_15basic_scan_argsINS0_18basic_scan_contextINSF_16buffer_range_tagEcEEEE
Line
Count
Source
9766
25.2k
{
9767
25.2k
    return detail::vscan_generic(SCN_FWD(source), format, args);
9768
25.2k
}
Unexecuted instantiation: _ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS2_18default_sentinel_tEEEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESJ_NS6_22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEEEOSF_NSD_17basic_string_viewIcNSD_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINS6_16buffer_range_tagEcEEEE
Unexecuted instantiation: _ZN3scn2v45vscanIRNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEEENS0_13scan_expectedINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NS2_17basic_string_viewIcS5_EENS0_15basic_scan_argsINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
Unexecuted instantiation: _ZN3scn2v45vscanINS0_6ranges6detail9subrange_8subrangeIPKcS7_EEEENS0_13scan_expectedINSt3__111conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEEEOSC_NSA_17basic_string_viewIcNSA_11char_traitsIcEEEENS0_15basic_scan_argsINS0_18basic_scan_contextINSH_16buffer_range_tagEcEEEE
9769
9770
/**
9771
 * Perform actual scanning from `source`, according to `format`, into the
9772
 * type-erased arguments at `args`, using `loc`, if requested. Called by
9773
 * `scan`.
9774
 *
9775
 * \ingroup locale
9776
 */
9777
template <typename Source,
9778
          typename Locale,
9779
          typename = std::void_t<decltype(Locale::classic())>>
9780
auto vscan(const Locale& loc,
9781
           Source&& source,
9782
           std::string_view format,
9783
           scan_args args) -> vscan_result<Source>
9784
25.2k
{
9785
25.2k
    return detail::vscan_localized_generic(loc, SCN_FWD(source), format, args);
9786
25.2k
}
9787
9788
/**
9789
 * Perform actual scanning from `source` into the type-erased argument at
9790
 * `arg`. Called by `scan_value`.
9791
 *
9792
 * \ingroup vscan
9793
 */
9794
template <typename Source>
9795
auto vscan_value(Source&& source, basic_scan_arg<scan_context> arg)
9796
    -> vscan_result<Source>
9797
{
9798
    return detail::vscan_value_generic(SCN_FWD(source), arg);
9799
}
9800
9801
/**
9802
 * Perform actual scanning from `stdin`, according to `format`, into the
9803
 * type-erased arguments at `args`. Called by `input`.
9804
 *
9805
 * \ingroup vscan
9806
 */
9807
scan_expected<void> vinput(std::string_view format, scan_args args);
9808
9809
namespace detail {
9810
template <typename T>
9811
auto scan_int_impl(std::string_view source, T& value, int base)
9812
    -> scan_expected<std::string_view::iterator>;
9813
9814
template <typename T>
9815
auto scan_int_exhaustive_valid_impl(std::string_view source) -> T;
9816
9817
#if !SCN_DISABLE_TYPE_SCHAR
9818
extern template auto scan_int_impl(std::string_view source,
9819
                                   signed char& value,
9820
                                   int base)
9821
    -> scan_expected<std::string_view::iterator>;
9822
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9823
    -> signed char;
9824
#endif
9825
#if !SCN_DISABLE_TYPE_SHORT
9826
extern template auto scan_int_impl(std::string_view source,
9827
                                   short& value,
9828
                                   int base)
9829
    -> scan_expected<std::string_view::iterator>;
9830
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> short;
9831
#endif
9832
#if !SCN_DISABLE_TYPE_INT
9833
extern template auto scan_int_impl(std::string_view source,
9834
                                   int& value,
9835
                                   int base)
9836
    -> scan_expected<std::string_view::iterator>;
9837
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> int;
9838
#endif
9839
#if !SCN_DISABLE_TYPE_LONG
9840
extern template auto scan_int_impl(std::string_view source,
9841
                                   long& value,
9842
                                   int base)
9843
    -> scan_expected<std::string_view::iterator>;
9844
extern template auto scan_int_exhaustive_valid_impl(std::string_view) -> long;
9845
#endif
9846
#if !SCN_DISABLE_TYPE_LONG_LONG
9847
extern template auto scan_int_impl(std::string_view source,
9848
                                   long long& value,
9849
                                   int base)
9850
    -> scan_expected<std::string_view::iterator>;
9851
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9852
    -> long long;
9853
#endif
9854
#if !SCN_DISABLE_TYPE_UCHAR
9855
extern template auto scan_int_impl(std::string_view source,
9856
                                   unsigned char& value,
9857
                                   int base)
9858
    -> scan_expected<std::string_view::iterator>;
9859
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9860
    -> unsigned char;
9861
#endif
9862
#if !SCN_DISABLE_TYPE_USHORT
9863
extern template auto scan_int_impl(std::string_view source,
9864
                                   unsigned short& value,
9865
                                   int base)
9866
    -> scan_expected<std::string_view::iterator>;
9867
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9868
    -> unsigned short;
9869
#endif
9870
#if !SCN_DISABLE_TYPE_UINT
9871
extern template auto scan_int_impl(std::string_view source,
9872
                                   unsigned int& value,
9873
                                   int base)
9874
    -> scan_expected<std::string_view::iterator>;
9875
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9876
    -> unsigned int;
9877
#endif
9878
#if !SCN_DISABLE_TYPE_ULONG
9879
extern template auto scan_int_impl(std::string_view source,
9880
                                   unsigned long& value,
9881
                                   int base)
9882
    -> scan_expected<std::string_view::iterator>;
9883
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9884
    -> unsigned long;
9885
#endif
9886
#if !SCN_DISABLE_TYPE_ULONG_LONG
9887
extern template auto scan_int_impl(std::string_view source,
9888
                                   unsigned long long& value,
9889
                                   int base)
9890
    -> scan_expected<std::string_view::iterator>;
9891
extern template auto scan_int_exhaustive_valid_impl(std::string_view)
9892
    -> unsigned long long;
9893
#endif
9894
9895
#if SCN_HAS_INT128
9896
9897
#if !SCN_DISABLE_TYPE_INT128
9898
extern template auto scan_int_impl(std::string_view source,
9899
                                   int128& value,
9900
                                   int base)
9901
    -> scan_expected<std::string_view::iterator>;
9902
#endif
9903
9904
#if !SCN_DISABLE_TYPE_UINT128
9905
extern template auto scan_int_impl(std::string_view source,
9906
                                   uint128& value,
9907
                                   int base)
9908
    -> scan_expected<std::string_view::iterator>;
9909
#endif
9910
9911
#endif  // SCN_HAS_INT128
9912
9913
}  // namespace detail
9914
9915
SCN_GCC_POP  // -Wnoexcept
9916
9917
    // dummy namespace to reset formatting
9918
    namespace detail
9919
{
9920
}
9921
9922
/////////////////////////////////////////////////////////////////
9923
// scan
9924
/////////////////////////////////////////////////////////////////
9925
9926
/**
9927
 * The return type of `scan`, based on the type of the source, and the
9928
 * types of the scanned arguments.
9929
 */
9930
template <typename Source, typename... Args>
9931
using scan_result_type =
9932
    scan_expected<scan_result<detail::scan_result_value_type<Source>, Args...>>;
9933
9934
/**
9935
 * If `in` contains a successful result as returned from `vscan`,
9936
 * the range contained in `out` is set to `*in`.
9937
 * Otherwise, `unexpected(in.error())` is stored in `out`.
9938
 */
9939
template <typename Result,
9940
          typename Range,
9941
          std::enable_if_t<std::conjunction_v<
9942
              detail::is_specialization_of<Result, scan_result>,
9943
              std::is_same<typename Result::range_type, Range>>>* = nullptr>
9944
void fill_scan_result(scan_expected<Result>& out, scan_expected<Range>&& in)
9945
151k
{
9946
151k
    if (SCN_UNLIKELY(!in)) {
9947
147k
        out = unexpected(in.error());
9948
147k
    }
9949
4.30k
    else {
9950
4.30k
        out->set_range(SCN_MOVE(*in));
9951
4.30k
    }
9952
151k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJcEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
5.61k
{
9946
5.61k
    if (SCN_UNLIKELY(!in)) {
9947
5.34k
        out = unexpected(in.error());
9948
5.34k
    }
9949
274
    else {
9950
274
        out->set_range(SCN_MOVE(*in));
9951
274
    }
9952
5.61k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJiEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
5.61k
{
9946
5.61k
    if (SCN_UNLIKELY(!in)) {
9947
5.61k
        out = unexpected(in.error());
9948
5.61k
    }
9949
0
    else {
9950
0
        out->set_range(SCN_MOVE(*in));
9951
0
    }
9952
5.61k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJjEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
5.61k
{
9946
5.61k
    if (SCN_UNLIKELY(!in)) {
9947
5.61k
        out = unexpected(in.error());
9948
5.61k
    }
9949
0
    else {
9950
0
        out->set_range(SCN_MOVE(*in));
9951
0
    }
9952
5.61k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJdEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
5.61k
{
9946
5.61k
    if (SCN_UNLIKELY(!in)) {
9947
5.61k
        out = unexpected(in.error());
9948
5.61k
    }
9949
0
    else {
9950
0
        out->set_range(SCN_MOVE(*in));
9951
0
    }
9952
5.61k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJbEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
5.61k
{
9946
5.61k
    if (SCN_UNLIKELY(!in)) {
9947
5.61k
        out = unexpected(in.error());
9948
5.61k
    }
9949
0
    else {
9950
0
        out->set_range(SCN_MOVE(*in));
9951
0
    }
9952
5.61k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJPvEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSC_7is_sameINSG_10range_typeET0_EEEEvE4typeELSA_0EEEvRNS0_13scan_expectedISG_EEONSR_ISM_EE
Line
Count
Source
9945
5.61k
{
9946
5.61k
    if (SCN_UNLIKELY(!in)) {
9947
5.61k
        out = unexpected(in.error());
9948
5.61k
    }
9949
0
    else {
9950
0
        out->set_range(SCN_MOVE(*in));
9951
0
    }
9952
5.61k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9945
5.61k
{
9946
5.61k
    if (SCN_UNLIKELY(!in)) {
9947
4.96k
        out = unexpected(in.error());
9948
4.96k
    }
9949
652
    else {
9950
652
        out->set_range(SCN_MOVE(*in));
9951
652
    }
9952
5.61k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9945
5.61k
{
9946
5.61k
    if (SCN_UNLIKELY(!in)) {
9947
4.96k
        out = unexpected(in.error());
9948
4.96k
    }
9949
652
    else {
9950
652
        out->set_range(SCN_MOVE(*in));
9951
652
    }
9952
5.61k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKcS8_EEJNSt3__117basic_string_viewIcNSA_11char_traitsIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSJ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISJ_EEONSV_ISP_EE
Line
Count
Source
9945
5.61k
{
9946
5.61k
    if (SCN_UNLIKELY(!in)) {
9947
4.96k
        out = unexpected(in.error());
9948
4.96k
    }
9949
652
    else {
9950
652
        out->set_range(SCN_MOVE(*in));
9951
652
    }
9952
5.61k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJwEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
11.2k
{
9946
11.2k
    if (SCN_UNLIKELY(!in)) {
9947
10.9k
        out = unexpected(in.error());
9948
10.9k
    }
9949
262
    else {
9950
262
        out->set_range(SCN_MOVE(*in));
9951
262
    }
9952
11.2k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJiEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
11.2k
{
9946
11.2k
    if (SCN_UNLIKELY(!in)) {
9947
11.1k
        out = unexpected(in.error());
9948
11.1k
    }
9949
46
    else {
9950
46
        out->set_range(SCN_MOVE(*in));
9951
46
    }
9952
11.2k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJjEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
11.2k
{
9946
11.2k
    if (SCN_UNLIKELY(!in)) {
9947
11.1k
        out = unexpected(in.error());
9948
11.1k
    }
9949
46
    else {
9950
46
        out->set_range(SCN_MOVE(*in));
9951
46
    }
9952
11.2k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJdEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
11.2k
{
9946
11.2k
    if (SCN_UNLIKELY(!in)) {
9947
11.1k
        out = unexpected(in.error());
9948
11.1k
    }
9949
38
    else {
9950
38
        out->set_range(SCN_MOVE(*in));
9951
38
    }
9952
11.2k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJbEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSB_7is_sameINSF_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISF_EEONSR_ISL_EE
Line
Count
Source
9945
11.2k
{
9946
11.2k
    if (SCN_UNLIKELY(!in)) {
9947
11.1k
        out = unexpected(in.error());
9948
11.1k
    }
9949
46
    else {
9950
46
        out->set_range(SCN_MOVE(*in));
9951
46
    }
9952
11.2k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJPvEEES9_TnPNSt3__19enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSC_7is_sameINSG_10range_typeET0_EEEEvE4typeELSA_0EEEvRNS0_13scan_expectedISG_EEONSR_ISM_EE
Line
Count
Source
9945
11.2k
{
9946
11.2k
    if (SCN_UNLIKELY(!in)) {
9947
11.2k
        out = unexpected(in.error());
9948
11.2k
    }
9949
24
    else {
9950
24
        out->set_range(SCN_MOVE(*in));
9951
24
    }
9952
11.2k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIcNSA_11char_traitsIcEENSA_9allocatorIcEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9945
11.2k
{
9946
11.2k
    if (SCN_UNLIKELY(!in)) {
9947
10.6k
        out = unexpected(in.error());
9948
10.6k
    }
9949
538
    else {
9950
538
        out->set_range(SCN_MOVE(*in));
9951
538
    }
9952
11.2k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__112basic_stringIwNSA_11char_traitsIwEENSA_9allocatorIwEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSL_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISL_EEONSX_ISR_EE
Line
Count
Source
9945
11.2k
{
9946
11.2k
    if (SCN_UNLIKELY(!in)) {
9947
10.6k
        out = unexpected(in.error());
9948
10.6k
    }
9949
538
    else {
9950
538
        out->set_range(SCN_MOVE(*in));
9951
538
    }
9952
11.2k
}
_ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeIPKwS8_EEJNSt3__117basic_string_viewIwNSA_11char_traitsIwEEEEEEES9_TnPNSA_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSA_7is_sameINSJ_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISJ_EEONSV_ISP_EE
Line
Count
Source
9945
11.2k
{
9946
11.2k
    if (SCN_UNLIKELY(!in)) {
9947
10.6k
        out = unexpected(in.error());
9948
10.6k
    }
9949
538
    else {
9950
538
        out->set_range(SCN_MOVE(*in));
9951
538
    }
9952
11.2k
}
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEESC_TnPNSD_9enable_ifIXsr3stdE13conjunction_vINS7_25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSD_7is_sameINSN_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISN_EEONSZ_IST_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINSt3__111__wrap_iterIPcEESA_EEJdEEESB_TnPNS7_9enable_ifIXsr3stdE13conjunction_vINS0_6detail25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENS7_7is_sameINSG_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISG_EEONSS_ISM_EE
Unexecuted instantiation: _ZN3scn2v416fill_scan_resultINS0_11scan_resultINS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIwE16forward_iteratorENS3_18default_sentinel_tEEEJNSt3__112basic_stringIcNSD_11char_traitsIcEENSD_9allocatorIcEEEEEEESC_TnPNSD_9enable_ifIXsr3stdE13conjunction_vINS7_25is_specialization_of_implIu11__remove_cvIu20__remove_reference_tIT_EES2_EENSD_7is_sameINSN_10range_typeET0_EEEEvE4typeELPv0EEEvRNS0_13scan_expectedISN_EEONSZ_IST_EE
9953
9954
/**
9955
 * Returns an empty result type for a source of type `Source`, and arguments of
9956
 * type `Args...`.
9957
 */
9958
template <typename Source, typename... Args>
9959
auto make_scan_result()
9960
151k
{
9961
151k
    return scan_result_type<Source, Args...>();
9962
151k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, char>()
Line
Count
Source
9960
5.61k
{
9961
5.61k
    return scan_result_type<Source, Args...>();
9962
5.61k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, int>()
Line
Count
Source
9960
5.61k
{
9961
5.61k
    return scan_result_type<Source, Args...>();
9962
5.61k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, unsigned int>()
Line
Count
Source
9960
5.61k
{
9961
5.61k
    return scan_result_type<Source, Args...>();
9962
5.61k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, double>()
Line
Count
Source
9960
5.61k
{
9961
5.61k
    return scan_result_type<Source, Args...>();
9962
5.61k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, bool>()
Line
Count
Source
9960
5.61k
{
9961
5.61k
    return scan_result_type<Source, Args...>();
9962
5.61k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, void*>()
Line
Count
Source
9960
5.61k
{
9961
5.61k
    return scan_result_type<Source, Args...>();
9962
5.61k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
9960
5.61k
{
9961
5.61k
    return scan_result_type<Source, Args...>();
9962
5.61k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
9960
5.61k
{
9961
5.61k
    return scan_result_type<Source, Args...>();
9962
5.61k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<char, std::__1::char_traits<char> >&, std::__1::basic_string_view<char, std::__1::char_traits<char> > >()
Line
Count
Source
9960
5.61k
{
9961
5.61k
    return scan_result_type<Source, Args...>();
9962
5.61k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, wchar_t>()
Line
Count
Source
9960
11.2k
{
9961
11.2k
    return scan_result_type<Source, Args...>();
9962
11.2k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, int>()
Line
Count
Source
9960
11.2k
{
9961
11.2k
    return scan_result_type<Source, Args...>();
9962
11.2k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, unsigned int>()
Line
Count
Source
9960
11.2k
{
9961
11.2k
    return scan_result_type<Source, Args...>();
9962
11.2k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, double>()
Line
Count
Source
9960
11.2k
{
9961
11.2k
    return scan_result_type<Source, Args...>();
9962
11.2k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, bool>()
Line
Count
Source
9960
11.2k
{
9961
11.2k
    return scan_result_type<Source, Args...>();
9962
11.2k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, void*>()
Line
Count
Source
9960
11.2k
{
9961
11.2k
    return scan_result_type<Source, Args...>();
9962
11.2k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Line
Count
Source
9960
11.2k
{
9961
11.2k
    return scan_result_type<Source, Args...>();
9962
11.2k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> > >()
Line
Count
Source
9960
11.2k
{
9961
11.2k
    return scan_result_type<Source, Args...>();
9962
11.2k
}
auto scn::v4::make_scan_result<std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> >&, std::__1::basic_string_view<wchar_t, std::__1::char_traits<wchar_t> > >()
Line
Count
Source
9960
11.2k
{
9961
11.2k
    return scan_result_type<Source, Args...>();
9962
11.2k
}
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<char>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: auto scn::v4::make_scan_result<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, double>()
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<char const*, char const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<scn::v4::detail::basic_scan_buffer<wchar_t>::forward_iterator, scn::v4::ranges::default_sentinel_t>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
Unexecuted instantiation: auto scn::v4::make_scan_result<scn::v4::ranges::detail::subrange_::subrange<wchar_t const*, wchar_t const*>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >()
9963
9964
template <typename Source, typename... Args>
9965
auto make_scan_result(std::tuple<Args...>&& initial_values)
9966
{
9967
    using type = scan_result_type<Source, Args...>;
9968
    using subrange_type = typename type::value_type::range_type;
9969
    return type{std::in_place, subrange_type{}, SCN_MOVE(initial_values)};
9970
}
9971
9972
/**
9973
 * \defgroup scan Basic scanning API
9974
 *
9975
 * \brief The core public-facing interface of the library
9976
 *
9977
 * The following functions use a format string syntax similar to that of
9978
 * `std::format`. See more at \ref format-string.
9979
 *
9980
 * When these functions take a `source` as input, it must
9981
 * model the `scannable_source` concept. See more at \ref scannable.
9982
 */
9983
9984
/**
9985
 * Scans `Args...` from `source`, according to the
9986
 * specifications given in the format string (`format`).
9987
 * Returns the resulting values in an object of type `scan_result`,
9988
 * alongside a `subrange` pointing to the unused input.
9989
 *
9990
 * Example:
9991
 * \code{.cpp}
9992
 * if (auto result = scn::scan<int>("123", "{}"))
9993
 *     int value = result->value();
9994
 * \endcode
9995
 *
9996
 * \ingroup scan
9997
 */
9998
template <typename... Args,
9999
          typename Source,
10000
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
10001
SCN_NODISCARD auto scan(Source&& source,
10002
                        scan_format_string<Source, Args...> format)
10003
    -> scan_result_type<Source, Args...>
10004
25.2k
{
10005
25.2k
    auto result = make_scan_result<Source, Args...>();
10006
25.2k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
25.2k
                                   make_scan_args(result->values())));
10008
25.2k
    return result;
10009
25.2k
}
_ZN3scn2v44scanIJcERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
10004
2.80k
{
10005
2.80k
    auto result = make_scan_result<Source, Args...>();
10006
2.80k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
2.80k
                                   make_scan_args(result->values())));
10008
2.80k
    return result;
10009
2.80k
}
_ZN3scn2v44scanIJiERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
10004
2.80k
{
10005
2.80k
    auto result = make_scan_result<Source, Args...>();
10006
2.80k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
2.80k
                                   make_scan_args(result->values())));
10008
2.80k
    return result;
10009
2.80k
}
_ZN3scn2v44scanIJjERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
10004
2.80k
{
10005
2.80k
    auto result = make_scan_result<Source, Args...>();
10006
2.80k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
2.80k
                                   make_scan_args(result->values())));
10008
2.80k
    return result;
10009
2.80k
}
_ZN3scn2v44scanIJdERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
10004
2.80k
{
10005
2.80k
    auto result = make_scan_result<Source, Args...>();
10006
2.80k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
2.80k
                                   make_scan_args(result->values())));
10008
2.80k
    return result;
10009
2.80k
}
_ZN3scn2v44scanIJbERNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
10004
2.80k
{
10005
2.80k
    auto result = make_scan_result<Source, Args...>();
10006
2.80k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
2.80k
                                   make_scan_args(result->values())));
10008
2.80k
    return result;
10009
2.80k
}
_ZN3scn2v44scanIJPvERNSt3__117basic_string_viewIcNS3_11char_traitsIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEEOSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNST_ISN_E4typeEEEE
Line
Count
Source
10004
2.80k
{
10005
2.80k
    auto result = make_scan_result<Source, Args...>();
10006
2.80k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
2.80k
                                   make_scan_args(result->values())));
10008
2.80k
    return result;
10009
2.80k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEERNS2_17basic_string_viewIcS5_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESJ_NS0_6detail22borrowed_tail_subrangeISF_Xsr6rangesE14borrowed_rangeISF_EEE4typeEE4typeEJDpT_EEEEEOSF_NS0_24basic_scan_format_stringIcNSK_13type_identityISF_E4typeEJDpNSW_ISQ_E4typeEEEE
Line
Count
Source
10004
2.80k
{
10005
2.80k
    auto result = make_scan_result<Source, Args...>();
10006
2.80k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
2.80k
                                   make_scan_args(result->values())));
10008
2.80k
    return result;
10009
2.80k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEERNS2_17basic_string_viewIcNS4_IcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESK_NS0_6detail22borrowed_tail_subrangeISG_Xsr6rangesE14borrowed_rangeISG_EEE4typeEE4typeEJDpT_EEEEEOSG_NS0_24basic_scan_format_stringIcNSL_13type_identityISG_E4typeEJDpNSX_ISR_E4typeEEEE
Line
Count
Source
10004
2.80k
{
10005
2.80k
    auto result = make_scan_result<Source, Args...>();
10006
2.80k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
2.80k
                                   make_scan_args(result->values())));
10008
2.80k
    return result;
10009
2.80k
}
_ZN3scn2v44scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEERS6_vEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESF_NS0_6detail22borrowed_tail_subrangeISB_Xsr6rangesE14borrowed_rangeISB_EEE4typeEE4typeEJDpT_EEEEEOSB_NS0_24basic_scan_format_stringIcNSG_13type_identityISB_E4typeEJDpNSS_ISM_E4typeEEEE
Line
Count
Source
10004
2.80k
{
10005
2.80k
    auto result = make_scan_result<Source, Args...>();
10006
2.80k
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10007
2.80k
                                   make_scan_args(result->values())));
10008
2.80k
    return result;
10009
2.80k
}
Unexecuted instantiation: _ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeINS0_6detail17basic_scan_bufferIcE16forward_iteratorENS9_18default_sentinel_tEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESQ_NSD_22borrowed_tail_subrangeISM_Xsr6rangesE14borrowed_rangeISM_EEE4typeEE4typeEJDpT_EEEEEOSM_NS0_24basic_scan_format_stringIcNSD_13type_identityISM_E4typeEJDpNS12_ISW_E4typeEEEE
Unexecuted instantiation: _ZN3scn2v44scanIJdERNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEEOSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSU_ISO_E4typeEEEE
Unexecuted instantiation: _ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS0_6ranges6detail9subrange_8subrangeIPKcSE_EEvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT0_EEP8_IO_FILEEESN_NS0_6detail22borrowed_tail_subrangeISJ_Xsr6rangesE14borrowed_rangeISJ_EEE4typeEE4typeEJDpT_EEEEEOSJ_NS0_24basic_scan_format_stringIcNSO_13type_identityISJ_E4typeEJDpNS10_ISU_E4typeEEEE
10010
10011
/**
10012
 * `scan` with explicitly supplied default values
10013
 *
10014
 * Can be used, for example, for pre-allocating a scanned string:
10015
 *
10016
 * \code{.cpp}
10017
 * std::string str;
10018
 * str.reserve(64);
10019
 *
10020
 * // As long as the read string fits in `str`,
10021
 * // does not allocate
10022
 * auto result = scn::scan<std::string>(source, "{}",
10023
 *                                      {std::move(str)});
10024
 * // Access the read string with result->value()
10025
 * \endcode
10026
 *
10027
 * \ingroup scan
10028
 */
10029
template <typename... Args,
10030
          typename Source,
10031
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
10032
SCN_NODISCARD auto scan(Source&& source,
10033
                        scan_format_string<Source, Args...> format,
10034
                        std::tuple<Args...>&& initial_args)
10035
    -> scan_result_type<Source, Args...>
10036
{
10037
    auto result = make_scan_result<Source>(SCN_MOVE(initial_args));
10038
    fill_scan_result(result, vscan(SCN_FWD(source), format,
10039
                                   make_scan_args(result->values())));
10040
    return result;
10041
}
10042
10043
/**
10044
 * \defgroup locale Localization
10045
 *
10046
 * \brief Scanning APIs that allow passing in a locale
10047
 */
10048
10049
/**
10050
 * `scan` using an explicit locale.
10051
 *
10052
 * Has no effect on its own, locale-specific scanning still needs to be
10053
 * opted-into on an argument-by-argument basis, with the `L` format string
10054
 * specifier.
10055
 *
10056
 * \code{.cpp}
10057
 * auto result = scn::scan<double>(
10058
 *     std::locale{"fi_FI.UTF-8"}, "3,14, "{:L}");
10059
 * // result->value() == 3.14
10060
 * \endcode
10061
 *
10062
 * \ingroup locale
10063
 */
10064
template <typename... Args,
10065
          typename Locale,
10066
          typename Source,
10067
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
10068
          typename = std::void_t<decltype(Locale::classic())>>
10069
SCN_NODISCARD auto scan(const Locale& loc,
10070
                        Source&& source,
10071
                        scan_format_string<Source, Args...> format)
10072
    -> scan_result_type<Source, Args...>
10073
25.2k
{
10074
25.2k
    auto result = make_scan_result<Source, Args...>();
10075
25.2k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
25.2k
                                   make_scan_args(result->values())));
10077
25.2k
    return result;
10078
25.2k
}
_ZN3scn2v44scanIJcENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
10073
2.80k
{
10074
2.80k
    auto result = make_scan_result<Source, Args...>();
10075
2.80k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
2.80k
                                   make_scan_args(result->values())));
10077
2.80k
    return result;
10078
2.80k
}
_ZN3scn2v44scanIJiENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
10073
2.80k
{
10074
2.80k
    auto result = make_scan_result<Source, Args...>();
10075
2.80k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
2.80k
                                   make_scan_args(result->values())));
10077
2.80k
    return result;
10078
2.80k
}
_ZN3scn2v44scanIJjENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
10073
2.80k
{
10074
2.80k
    auto result = make_scan_result<Source, Args...>();
10075
2.80k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
2.80k
                                   make_scan_args(result->values())));
10077
2.80k
    return result;
10078
2.80k
}
_ZN3scn2v44scanIJdENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
10073
2.80k
{
10074
2.80k
    auto result = make_scan_result<Source, Args...>();
10075
2.80k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
2.80k
                                   make_scan_args(result->values())));
10077
2.80k
    return result;
10078
2.80k
}
_ZN3scn2v44scanIJbENSt3__16localeERNS2_17basic_string_viewIcNS2_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
10073
2.80k
{
10074
2.80k
    auto result = make_scan_result<Source, Args...>();
10075
2.80k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
2.80k
                                   make_scan_args(result->values())));
10077
2.80k
    return result;
10078
2.80k
}
_ZN3scn2v44scanIJPvENSt3__16localeERNS3_17basic_string_viewIcNS3_11char_traitsIcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS3_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESH_NS0_6detail22borrowed_tail_subrangeISD_Xsr6rangesE14borrowed_rangeISD_EEE4typeEE4typeEJDpT_EEEEERKT0_OSD_NS0_24basic_scan_format_stringIcNSI_13type_identityISD_E4typeEJDpNSX_ISO_E4typeEEEE
Line
Count
Source
10073
2.80k
{
10074
2.80k
    auto result = make_scan_result<Source, Args...>();
10075
2.80k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
2.80k
                                   make_scan_args(result->values())));
10077
2.80k
    return result;
10078
2.80k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENS2_6localeERNS2_17basic_string_viewIcS5_EEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESK_NS0_6detail22borrowed_tail_subrangeISG_Xsr6rangesE14borrowed_rangeISG_EEE4typeEE4typeEJDpT_EEEEERKT0_OSG_NS0_24basic_scan_format_stringIcNSL_13type_identityISG_E4typeEJDpNS10_ISR_E4typeEEEE
Line
Count
Source
10073
2.80k
{
10074
2.80k
    auto result = make_scan_result<Source, Args...>();
10075
2.80k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
2.80k
                                   make_scan_args(result->values())));
10077
2.80k
    return result;
10078
2.80k
}
_ZN3scn2v44scanIJNSt3__112basic_stringIwNS2_11char_traitsIwEENS2_9allocatorIwEEEEENS2_6localeERNS2_17basic_string_viewIcNS4_IcEEEEvvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESL_NS0_6detail22borrowed_tail_subrangeISH_Xsr6rangesE14borrowed_rangeISH_EEE4typeEE4typeEJDpT_EEEEERKT0_OSH_NS0_24basic_scan_format_stringIcNSM_13type_identityISH_E4typeEJDpNS11_ISS_E4typeEEEE
Line
Count
Source
10073
2.80k
{
10074
2.80k
    auto result = make_scan_result<Source, Args...>();
10075
2.80k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
2.80k
                                   make_scan_args(result->values())));
10077
2.80k
    return result;
10078
2.80k
}
_ZN3scn2v44scanIJNSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEENS2_6localeERS6_vvEENS0_13scan_expectedINS0_11scan_resultINS2_11conditionalIXsr3stdE9is_same_vIu11__remove_cvIu20__remove_reference_tIT1_EEP8_IO_FILEEESG_NS0_6detail22borrowed_tail_subrangeISC_Xsr6rangesE14borrowed_rangeISC_EEE4typeEE4typeEJDpT_EEEEERKT0_OSC_NS0_24basic_scan_format_stringIcNSH_13type_identityISC_E4typeEJDpNSW_ISN_E4typeEEEE
Line
Count
Source
10073
2.80k
{
10074
2.80k
    auto result = make_scan_result<Source, Args...>();
10075
2.80k
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10076
2.80k
                                   make_scan_args(result->values())));
10077
2.80k
    return result;
10078
2.80k
}
10079
10080
/**
10081
 * `scan` with a locale and default values
10082
 *
10083
 * \ingroup locale
10084
 */
10085
template <typename... Args,
10086
          typename Locale,
10087
          typename Source,
10088
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>,
10089
          typename = std::void_t<decltype(Locale::classic())>>
10090
SCN_NODISCARD auto scan(const Locale& loc,
10091
                        Source&& source,
10092
                        scan_format_string<Source, Args...> format,
10093
                        std::tuple<Args...>&& initial_args)
10094
    -> scan_result_type<Source, Args...>
10095
{
10096
    auto result = make_scan_result<Source>(SCN_MOVE(initial_args));
10097
    fill_scan_result(result, vscan(loc, SCN_FWD(source), format,
10098
                                   make_scan_args(result->values())));
10099
    return result;
10100
}
10101
10102
/**
10103
 * `scan` a single value, with default options.
10104
 *
10105
 * Essentially equivalent to: `scn::scan<T>(source, "{}")`,
10106
 * except it can skip parsing the format string, gaining performance.
10107
 *
10108
 * \ingroup scan
10109
 */
10110
template <typename T,
10111
          typename Source,
10112
          typename = std::enable_if_t<detail::is_file_or_narrow_range<Source>>>
10113
SCN_NODISCARD auto scan_value(Source&& source) -> scan_result_type<Source, T>
10114
{
10115
    auto result = make_scan_result<Source, T>();
10116
    fill_scan_result(
10117
        result, vscan_value(SCN_FWD(source),
10118
                            detail::make_arg<scan_context>(result->value())));
10119
    return result;
10120
}
10121
10122
/**
10123
 * `scan` a single value, with default options, and a default value.
10124
 *
10125
 * \ingroup scan
10126
 */
10127
template <typename T,
10128
          typename Source,
10129
          std::enable_if_t<detail::is_file_or_narrow_range<Source>>* = nullptr>
10130
SCN_NODISCARD auto scan_value(Source&& source, T initial_value)
10131
    -> scan_result_type<Source, T>
10132
{
10133
    auto result =
10134
        make_scan_result<Source>(std::tuple<T>{SCN_MOVE(initial_value)});
10135
    fill_scan_result(
10136
        result, vscan_value(SCN_FWD(source),
10137
                            detail::make_arg<scan_context>(result->value())));
10138
    return result;
10139
}
10140
10141
/**
10142
 * Scan from `stdin`.
10143
 *
10144
 * Equivalent to `scn::scan<...>(stdin, ...)`.
10145
 *
10146
 * \code{.cpp}
10147
 * auto result = scn::input<int>("{}");
10148
 * \endcode
10149
 *
10150
 * \ingroup scan
10151
 */
10152
template <typename... Args>
10153
SCN_NODISCARD auto input(scan_format_string<std::FILE*, Args...> format)
10154
    -> scan_result_type<std::FILE*, Args...>
10155
{
10156
    auto result = scan_result_type<std::FILE*, Args...>(std::in_place, stdin,
10157
                                                        std::tuple<Args...>{});
10158
    auto err = vinput(format, make_scan_args(result->values()));
10159
    if (SCN_UNLIKELY(!err)) {
10160
        result = unexpected(err.error());
10161
    }
10162
    return result;
10163
}
10164
10165
/**
10166
 * Write msg to stdout, and call `input<Args...>(format)`
10167
 *
10168
 * \ingroup scan
10169
 */
10170
template <typename... Args>
10171
SCN_NODISCARD auto prompt(const char* msg,
10172
                          scan_format_string<std::FILE*, Args...> format)
10173
    -> scan_result_type<std::FILE*, Args...>
10174
{
10175
    std::printf("%s", msg);
10176
    std::fflush(stdout);
10177
    return input<Args...>(format);
10178
}
10179
10180
namespace detail {
10181
template <typename T>
10182
inline constexpr bool is_scan_int_type =
10183
    (std::is_integral_v<T> && !std::is_same_v<T, char> &&
10184
     !std::is_same_v<T, wchar_t> && !std::is_same_v<T, char32_t> &&
10185
     !std::is_same_v<T, bool>)
10186
#if SCN_HAS_INT128
10187
    || std::is_same_v<T, int128> || std::is_same_v<T, uint128>
10188
#endif
10189
    ;
10190
}  // namespace detail
10191
10192
/**
10193
 * Fast integer reading.
10194
 *
10195
 * Quickly reads an integer from a `std::string_view`. Skips preceding
10196
 * whitespace.
10197
 *
10198
 * Reads in the specified base,
10199
 * allowing a base prefix. Set `base` to `0` to detect the base from the
10200
 * input. `base` must either be `0`, or in range `[2, 36]`.
10201
 *
10202
 * \ingroup scan
10203
 */
10204
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
10205
SCN_NODISCARD auto scan_int(std::string_view source, int base = 10)
10206
    -> scan_result_type<std::string_view, T>
10207
{
10208
    auto result = scan_result_type<std::string_view, T>();
10209
    if (auto r = detail::scan_int_impl(source, result->value(), base);
10210
        SCN_LIKELY(r)) {
10211
        result->set_range(ranges::subrange{*r, source.end()});
10212
    }
10213
    else {
10214
        result = unexpected(r.error());
10215
    }
10216
    return result;
10217
}
10218
10219
namespace detail {
10220
template <bool Val, typename T>
10221
inline constexpr bool dependent_bool = Val;
10222
}
10223
10224
/**
10225
 * Very fast integer reading.
10226
 *
10227
 * Quickly reads an integer from a `std::string_view`.
10228
 *
10229
 * Be very careful when using this one!
10230
 * Its speed comes from some very heavy assumptions about the validity of
10231
 * the input:
10232
 *  - `source` must not be empty.
10233
 *  - `source` contains nothing but the integer: no leading or trailing
10234
 *    whitespace, no extra junk. Leading `-` is allowed for signed types,
10235
 *    no `+` is allowed.
10236
 *  - The parsed value does not overflow.
10237
 *  - The input is a valid base-10 integer.
10238
 * Breaking these assumptions will lead to UB.
10239
 *
10240
 * \ingroup scan
10241
 */
10242
template <typename T, std::enable_if_t<detail::is_scan_int_type<T>>* = nullptr>
10243
SCN_NODISCARD auto scan_int_exhaustive_valid(std::string_view source) -> T
10244
{
10245
    static_assert(
10246
        detail::dependent_bool<!SCN_IS_BIG_ENDIAN, T>,
10247
        "scan_int_exhaustive_valid requires a little endian environment");
10248
    return detail::scan_int_exhaustive_valid_impl<T>(source);
10249
}
10250
10251
SCN_END_NAMESPACE
10252
}  // namespace scn